首页 > 解决方案 > 习惯于在c++中读取文件时忽略函数异常

问题描述

我正在尝试使用忽略函数跳过几行,但函数的参数奇怪地不同。它不应该是流大小(字符数量和分隔符(停止忽略分配的字符)。我遇到的问题是第二个参数对我来说必须是整数。虽然我想使用"\n" 它不接受它,因为它是字符。

std::basic_istream<char,std::char_traits<char>> &std::basic_istream<char,std::char_traits<char>>::ignore(std::streamsize,int)': 不能从 'const 转换参数 2字符 [2]' 到 'int'

标签: c++file

解决方案


"\n"(带双引号)是字符串文字,而不是char文字。char在这种情况下,它是两个s的数组;相当于{'\n', '\0'}

'\n'(带单引号)是char文字。它代表一个换行符。

std::istream::ignore仅接受单个字符作为其分隔符,因此您必须使用后者。


注意:std::istream::ignore的第二个参数是 anint而不是 achar以便它可以容纳额外的“文件结尾”伪字符。eof 值必须不同于任何有效的字符值,因此用于分隔符的类型必须比char.


推荐阅读