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

Материал из Весельчак У
Версия от 21:50, 28 июля 2008; RXL (обсуждение | вклад) (Ветвление 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');