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