C++ 用于读取c+中的文件时忽略函数异常+;
我试图使用ignore函数跳过几行,但是函数的参数有着奇怪的不同。它不应该是streamsize(字符数和分隔符)(以停止忽略指定的字符)。我遇到的问题是,我的第二个参数必须是整数。虽然我想使用“\n”,但它不接受它,因为它是字符 std::basic_istream&std::basic_istream::ignore(std::streamsize,int)“”:无法将参数2从“const char[2]”转换为“int”C++ 用于读取c+中的文件时忽略函数异常+;,c++,file,C++,File,我试图使用ignore函数跳过几行,但是函数的参数有着奇怪的不同。它不应该是streamsize(字符数和分隔符)(以停止忽略指定的字符)。我遇到的问题是,我的第二个参数必须是整数。虽然我想使用“\n”,但它不接受它,因为它是字符 std::basic_istream&std::basic_istream::ignore(std::streamsize,int)“”:无法将参数2从“const char[2]”转换为“int” “\n”(带双引号)是字符串文字,而不是char文字。在本例中,它是
“\n”
(带双引号)是字符串文字,而不是char
文字。在本例中,它是两个char
的数组;相当于{'\n','\0'}
“\n”
(带单引号)是一个char
文本。它表示一个换行符
std::istream::ignore
只接受单个字符作为其分隔符,因此必须使用后者
注意:
std::istream::ignore
的第二个参数是int
而不是char
,因此它可以容纳额外的“文件结尾”伪字符。eof值必须不同于任何有效字符值,因此用于分隔符的类型必须大于char
“\n”
是一个由2个字符组成的数组('\n'
和'\0'
)。'\n'
是一个字符
。我已经将双引号改成了单引号,它似乎起作用了。我会研究它们之间的区别。你介意告诉我为什么它们不同吗?