Вот основной фрагмент кода:Выяснение ли `cin.getline()` преуспевает
while (true)
{
cin.getline(str, STRSIZE);
if (str[0] == '\n') { break; }
}
По существу, когда пользователь вводит только одинокое возвращение ключ, петля должна до конца. Конечно, этот код не работает, потому что \n
покраснел и никогда не заканчивается в str
, чтобы убедиться, что был введен одинокий \n
. Мне не любопытно, почему это не работает; Я знаю почему.
Как вы можете убедиться, что одинокая
\n
была введена, поэтому выход изwhile-loop
?
Я знаю, что можно сделать следующее:
while (cin >> str);
Однако:
>>
занимает одно слово в то время- В моем реальном коде, в
for-loop
, а неwhile-loop
.
О, так что, когда я называю 'cin.getline()', 'str' будет установлен в' \ 0 ', а не мусор, что 'str' было до того, как вызов? –
@SirJony, это вроде как правильно. 'str' будет установлено в пустую строку, а не' \ 0'. –
В чем разница? Кстати, я использую 'char []', а не 'string'. Прошу прощения за то, что я не понимаю этого. –