FAQ:ANSI CPP:при вводе текста в переменную считываются только те символы, которые шли до пробела, а необходимо считать всю строку целиком

Материал из Весельчак У
Перейти к: навигация, поиск

Как преодолеть такую ситуацию, когда при вводе текста в переменную считываются только те символы, которые шли до пробела, а мне необходимо считать всю строку целиком?

Например:

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');