Input fra bruger?

Tags:    c++ diverse

Hejsa ..
Hvis jeg laver en char, og så gør som man kan skrive i den med cin, tager den kun med til første mellemrum ... er det fordi man ikke skal bruge char til det?



7 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvis du prøvede at kigge i forumet er der inden for den sidste uge spurgt det præcis samme spørgsmål(af mig).

det du skal gøre er at istedet for at oprette en variable skal du oprette en array. Hvis du ikke ved hvad et array er skal du nok vente

eksempel:

du skriver:

int streng;
cout << "Skriv en streng: ";
cin >> streng;


du skal skrive:

char streng[];
cout << "Skriv en streng: ";
cin >> streng;

nu opretter du "streng" som en array istedet for en variable.
i linjen hvor arrayet bliver erklæret skal du mellem [ og ] skriv hvor mange cifre der må være i talet fx hvis du ved talet ikke bliver højere end 1000000000000000
så skal du skrive
char streng[16];
da der er 16 cifre, hvis du ikke er sikker på antalet lader du det bare være blankt, men det er en god ide at skrive noget der og
[100] burde være nok nedenunder kan du se hvor mange det er der er så er maks
(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)
det burde være nok ellers kan du bare skrive 1000 istedet.



Hvis du prøvede at kigge i forumet er der inden for den sidste uge spurgt det præcis samme spørgsmål(af mig).

det du skal gøre er at istedet for at oprette en variable skal du oprette en array. Hvis du ikke ved hvad et array er skal du nok vente

eksempel:

du skriver:

int streng;
cout << "Skriv en streng: ";
cin >> streng;


du skal skrive:

char streng[];
cout << "Skriv en streng: ";
cin >> streng;

nu opretter du "streng" som en array istedet for en variable.
i linjen hvor arrayet bliver erklæret skal du mellem [ og ] skriv hvor mange cifre der må være i talet fx hvis du ved talet ikke bliver højere end 1000000000000000
så skal du skrive
char streng[16];
da der er 16 cifre, hvis du ikke er sikker på antalet lader du det bare være blankt, men det er en god ide at skrive noget der og
[100] burde være nok nedenunder kan du se hvor mange det er der er så er maks
(9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)
det burde være nok ellers kan du bare skrive 1000 istedet.

runix :d

lol? - ved mig tager det ikke mellemrum med, som er hans problem

jeg vil bruge:

char string[256];
cout << "skriv noget :)\\n";
cin.getline(string, 256, '\\n');
cout << string << endl;

som tager mellemrum med ;)

håber det kan bruges :)



jeg vil bruge:

char string[256];
cout << "skriv noget :)\\n";
cin.getline(string, 256, '\\n');
cout << string << endl;

som tager mellemrum med ;)

håber det kan bruges :)


Men så er der en begrænsning i længden. Det er der ikke her:

Fold kodeboks ind/udKode 




ja okay :)



Når jeg skriver

string str;

Siger den:
In function int main() 'string' undeclared ..

Hvad går der galt?
Jeg har brugt #include <string>

Jeg bruger Dev C++

*Update*

Nå, nu virker det ..

[Redigeret d. 16/12-03 18:22:04 af Kasper Nielsen]



jeg vil bruge:

char string[256];
cout << "skriv noget :)\\n";
cin.getline(string, 256, '\\n');
cout << string << endl;

som tager mellemrum med ;)

håber det kan bruges :)

Men så er der en begrænsning i længden. Det er der ikke her:

Fold kodeboks ind/udKode 


Ok, det virkede .. men hvad gør cout.flush() ?




Ok, det virkede .. men hvad gør cout.flush() ?


C++ streams er optimerede så du kan ikke være sikker på at:
cout << "Hello, World!";
bliver skrevet med det samme. cout.flush() sikrer at strømmens buffere skrives med det samme og tømmes.



t