gpt4 book ai didi

c++ - 为什么 C++ 中的 getline() 不起作用? (没有匹配函数调用 'getline(std::ofstream&, std::string&)'

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:15 27 4
gpt4 key购买 nike

我正在尝试从文件中读取,但 C++ 不想运行 getline()

我收到这个错误:

C:\main.cpp:18: error: no matching function for call to 'getline(std::ofstream&, std::string&)'
std::getline (file,line);
^

这是代码:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <string>

using namespace std;

int main(){
string line;

std::ofstream file;
file.open("test.txt");
if (file.is_open())
{
while ( file.good() )
{
getline (file,line);
cout << line << endl;
}
file.close();
}


}

最佳答案

std::getline 设计用于输入流类 (std::basic_istream),因此您应该使用 std::ifstream类:

std::ifstream file("test.txt");

此外,在循环中使用 while (file.good()) 作为输入条件通常是不好的做法。试试这个:

while ( std::getline(file, line) )
{
std::cout << line << std::endl;
}

关于c++ - 为什么 C++ 中的 getline() 不起作用? (没有匹配函数调用 'getline(std::ofstream&, std::string&)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com