getline()出现文件I/O错误
File I/O error with getline()
我的代码:
void listall()
{
string line;
ifstream input;
input.open("registry.txt", ios::in);
if(input.is_open())
{
while(std::getline(input, line, "n"))
{
cout<<line<<"n";
}
}
else
{
cout<<"Error opening file.n";
}
}
我是C++的新手,我想逐行打印出一个文本文件。我正在使用代码::块。
它给我的错误是:
错误:调用"getline(std::ifstream&,std::string&;,const-char[2])"时没有匹配的函数
这些是std::getline
:的有效过载
istream& getline (istream& is, string& str, char delim);
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream& is, string& str);
istream& getline (istream&& is, string& str);
我相信你的意思是std::getline(input, line, 'n')
"n"
不是一个字符,它是一个大小为2的字符数组(1个用于'n'
,另一个用于NUL终止符' '
)。
写这个:
#include <fstream> // for std::ffstream
#include <iostream> // for std::cout
#include <string> // for std::string and std::getline
int main()
{
std::ifstream input("registry.txt");
for (std::string line; std::getline(input, line); )
{
std::cout << line << "n";
}
}
如果你想进行错误检查,它是这样的:
if (!input) { std::cerr << "Could not open file.n"; }
相关文章:
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 如何在文件和行号中抛出错误
- 防止在C++中选择错误文件时提升 xml 解析器崩溃
- AMQP-CPP >处理程序中的错误文件描述符
- Xcode OSX上的C++构建失败,出现多个错误文件IO..不可用:在macOS 10.15中引入
- 为什么生成文件返回 g++: 错误: h 文件或目录 make: *** [生成文件:12: 测试] 错误 1?
- 警告:打开错误文件(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.
- Ubuntu C++ 编译器错误: g++: 错误: 文件.cpp: 没有这样的文件或目录
- main.cc:5:30:致命错误:文件夹/file.h:没有这样的文件或目录
- C++ LNK2005"已定义"错误 - 文件引用自身
- C++:模拟餐饮公司计费程序-无法将错误数据输出到错误文件
- 博兰德C++链接器错误c文件包括
- Visual Studio 2015 代码覆盖率错误文件
- 使用system()与Gnuplot进行绘图会导致错误:文件不可读
- 是否存在fseek/ftell可能给出错误文件大小的情况
- g++编译错误.h文件
- c++编译错误:.o文件未找到
- 打开错误文件的错误消息
- Ndk-build输出添加符号错误.文件格式错误