c++ - 习惯于在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'
解决方案
"\n"
(带双引号)是字符串文字,而不是char
文字。char
在这种情况下,它是两个s的数组;相当于{'\n', '\0'}
。
'\n'
(带单引号)是char
文字。它代表一个换行符。
std::istream::ignore
仅接受单个字符作为其分隔符,因此您必须使用后者。
注意:std::istream::ignore
的第二个参数是 anint
而不是 achar
以便它可以容纳额外的“文件结尾”伪字符。eof 值必须不同于任何有效的字符值,因此用于分隔符的类型必须比char
.
推荐阅读
- rust - Unable to create default trait implementation
- r - 带有 data.table 的矢量化函数
- tensorflow - Displaying Images from DataLoader with TensorFlow Lite Model Maker
- python - 如何在 Django 中将用户显示名称更改为他们的名字
- r - Averaging rows with changing number of columns
- git - 作为存储库的所有者,如何向同事的分支发出拉取请求?
- c++ - What does :: operator mean in C++ when it's used at the beginning
- swift - 表视图上的 Swift Pulltorefresh 可能导致提供的代码中的线程 1:EXC_BAD_ACCESS (code=1, address=0x53178d8ac)
- php - Is there any particular reason that PHP doesn't do bcadd() whenever + is used?
- node.js - 有没有办法从 Stripe API webhooks 得到响应?