"\n"
(с двойными кавычками) - строковый литерал, а не char
литерал.В данном случае это массив из двух char
с;эквивалентно {'\n', '\0'}
.
'\n'
(с одинарными кавычками) является литералом char
.Он представляет один символ новой строки.
std::istream::ignore
принимает в качестве разделителя только один символ, поэтому вы должны использовать последний.
Примечание: секунда std::istream::ignore
параметр является int
, а не char
, так что он может вместить дополнительный псевдосимвол "конец файла".Значение eof должно отличаться от любого допустимого символьного значения, поэтому тип, используемый для разделителя, должен быть шире, чем char
.