Игнорировать аномалию функций при чтении файлов в c ++ - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь использовать функцию игнорирования, пропустить несколько строк, но параметры функции странно отличаются.Разве это не должен быть размер потока (количество символов и разделитель (чтобы прекратить игнорировать до назначенного символа). Проблема, с которой я столкнулся, заключается в том, что для меня 2-й параметр должен быть целым числом. Хотя я хочу использовать"\ n" не принимает его, потому что это char.

std :: basic_istream& Станд :: basic_istream:: ignore (std :: streamsize, int) ': невозможно преобразовать аргумент 2 из' const char [2] 'в' int '

1 Ответ

0 голосов
/ 04 января 2019

"\n" (с двойными кавычками) - строковый литерал, а не char литерал.В данном случае это массив из двух char с;эквивалентно {'\n', '\0'}.

'\n' (с одинарными кавычками) является литералом char.Он представляет один символ новой строки.

std::istream::ignore принимает в качестве разделителя только один символ, поэтому вы должны использовать последний.


Примечание: секунда std::istream::ignoreпараметр является int, а не char, так что он может вместить дополнительный псевдосимвол "конец файла".Значение eof должно отличаться от любого допустимого символьного значения, поэтому тип, используемый для разделителя, должен быть шире, чем char.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...