Каждый раз, когда я делаю быстрый фрагмент строки кода С++
std::string s;
cin >> s;
Я проклинаю себя, потому что забыл, что он останавливается в пробеле, а не получает целую строку.
Тогда, вспомнив getline
, я неизменно путаюсь в отношении двух многообразий:
std::string s;
getline (std::cin, s);
и
char cs[256];
std::cin.getline (cs, sizeof (cs));
Есть ли разница между этими двумя, кроме типа данных?
Мне кажется, что С++ должен быть первым. При каких обстоятельствах я буду использовать последнее, учитывая, что я, вероятно, должен использовать реальные строки вместо всех массивов символов с нулевым символом?
И, поскольку вход должен действительно быть полем входных потоков, почему не первая часть istream
?