Ilsundal
Messages postés79Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention 1 mars 2011
-
6 août 2006 à 16:39
Ilsundal
Messages postés79Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention 1 mars 2011
-
6 août 2006 à 17:17
Bonjour a tous,
voila mon probleme, j'ai declaré une variable, mais quand je lui assigne par exemple : MAISON, il m'affiche que M. comment faire pour qu'il prenne en compte tout le mot ??? voici mon code. MERCI d'avance
PS : je code avec DEVC++
#include <cstdlib>
#include
using namespace std;
char x;
int main(int argc, char *argv[])
{
system ("TITLE Icarion - config.php");
cout << "Bienvenue dans le programme de generation du fichier config.php \n\n";
cin >> x;
cout << x;
system("PAUSE");
getchar();
return EXIT_SUCCESS;
}
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 6 août 2006 à 17:10
char x[256];
Un char seul équivaut à un caratère unique. Il te faut de la mémoire pour une chaine et ça ne se fait pas seul. Il faut que tu indique toi même la taille de la mémoire réservé. Ci-haut, tu as de la place pour 256 caractères. Tu aurais pu aussi travailler en mémoire dynamique ce qui te premetterais d'allouer de très grosse somme de mémoire car dans le cas de l'allocation static (les tableaux comme ci-dessus), la mémoire est prise dans le stack du logiciel qui est en général très limité. Pour l'allocation dynamique EN C++ c'est simple:
char *x = new char[256];
et tu libère avec
delete[] x;
quand tu n'a plus besoin de la mémoire.
Tu devrais te plonger dans un livre de C++ et bien lire la section de la mémoire et des pointeurs. Il faut ABSOLUMENT comprendre comment ça fonctionne en C/C++.
C++ (@++)
___________________________________________
Les plus grands esprits trouvent toujours une solution
deck_bsd
Messages postés1243Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention 3 août 20162 6 août 2006 à 17:11
Il ne t'affiche que M parceque tu as déclaré une variable de type char et non char * x ou char x[21] . char c'est 1 octet et donc 1 caractère. Pour avoir maison tu dois déclaréer une chaine de caractère comme j'ai mis au début. Encore que ça c'est du C, maintenant en C++ c'est string :D