FAQ:ANSI CPP:при вводе текста в переменную считываются только те символы, которые шли до пробела, а необходимо считать всю строку целиком — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) (Ветвление FAQ:ANSI CPP.) |
RXL (обсуждение | вклад) м (/* Как преодолеть такую ситуацию, когда при вводе текста в переменную считываются только те символы, которые шли до пробела, а мне необход) |
||
Строка 2: | Строка 2: | ||
Например: | Например: | ||
− | < | + | <syntaxhighlight lang="cpp"> |
− | + | char test1[20], test[20]; | |
− | + | cin >> test; //ввожу: "текст с пробелом" | |
− | + | cout << test; //выводится: "текст"} | |
− | + | scanf("%s", test1); //ввожу: "текст с пробелом" | |
− | + | printf("%s", test1); //выводится: "текст" | |
− | </ | + | </syntaxhighlight> |
Как это обойти? Средствам доступными в TC++3? | Как это обойти? Средствам доступными в TC++3? | ||
− | < | + | <syntaxhighlight lang="cpp"> |
− | + | string buffer; | |
− | + | getline(cin, buffer, '\n'); | |
− | + | cout << buffer << "|" << endl; | |
− | </ | + | </syntaxhighlight> |
или | или | ||
− | < | + | <syntaxhighlight lang="cpp"> |
− | + | do | |
− | + | { | |
− | + | ch = getch(); | |
− | + | cout << ch | |
− | + | } while (ch != '/0'); | |
− | </ | + | </syntaxhighlight> |
[[Category:FAQ:ANSI CPP]] | [[Category:FAQ:ANSI CPP]] |
Текущая версия на 00:53, 30 июля 2008
Как преодолеть такую ситуацию, когда при вводе текста в переменную считываются только те символы, которые шли до пробела, а мне необходимо считать всю строку целиком?
Например:
char test1[20], test[20]; cin >> test; //ввожу: "текст с пробелом" cout << test; //выводится: "текст"} scanf("%s", test1); //ввожу: "текст с пробелом" printf("%s", test1); //выводится: "текст"
Как это обойти? Средствам доступными в TC++3?
string buffer; getline(cin, buffer, '\n'); cout << buffer << "|" << endl;
или
do { ch = getch(); cout << ch } while (ch != '/0');