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