У меня неприятная проблема с примером C ++.Все работает нормально, пока я не введу что-то с пробелами.
#include <iostream>
using namespace std;
int main (int argc, char * const argv[])
{
int iteration = 0;
while (true) {
char * input = new char[256];
scanf("%s", input);
cout << ++iteration << ": " << input << endl;
cin.get();
}
return 0;
}
Так что с этим кодом я могу ввести что угодно, но все, что после пробела, как-то похоже на буфер и используется во второй итерации.
foo
1: foo
bar
2: bar
foobar
3: foobar
foo bar
4: foo
5: bar
Каждая функция чтения входных данных действует так, и это сводит меня с ума.cin >> input
, freads()
, cin.get()
и т. Д. Все это делают.
Это частая проблема с пользовательским вводом, или я что-то здесь не так делаю?