Во-первых, вы ошиблись в коде. Вы выделяете массив 128 char
s, но вы сообщаете cin.getline()
, что вы выделили 256 char
s. Итак, у вас есть ожидание переполнения буфера.
Тем не менее, std::string
имеет конструкторы, которые принимают char[]
данные в качестве входных данных, например:
#include <iostream>
using namespace std;
int main()
{
while (true) {
char lol[128];
cout << "you say >> ";
cin.getline(lol, 128);
string s(lol, cin.gcount());
cout << s << endl;;
}
return 0;
}
Однако вы действительно должны использовать std::getline()
вместо std::string
вместо char[]
:
#include <iostream>
#include <string>
using namespace std;
int main()
{
while (true) {
string lol;
cout << "you say >> ";
getline(cin, lol);
cout << lol << endl;;
}
return 0;
}