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

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