You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入string库后无法调用getline函数的技术求助

解决getline调用不匹配的问题

你的代码出现这个错误,核心是两个低级问题:

  • 文件流类型用反了:你用ofstream声明了inputFile,但ofstream是专门用来写入文件的输出流,要读取文件必须用ifstream(输入流)。getline只能作用于输入流,用输出流调用它自然会报找不到匹配函数的错误。

  • 缺少C++字符串头文件:你说引入了<string>,但代码里只包含了<string.h>——这是C语言的字符串处理头文件,和C++的std::string、std::getline需要的<string>完全不是一回事,必须补上#include <string>。

修正后的关键代码片段:

#include<iostream>
#include<fstream>
#include<string>  // 新增C++字符串头文件
#include<string.h>
#include<time.h>
using namespace std;

class sorting {  
    public:
    void bubblesort(int arraySize){
        int num;
        int *arr=new int[arraySize];
        ifstream inputFile("data.txt");  // 把ofstream改成ifstream
        if(inputFile.is_open()){
            for (int i = 0; i <arraySize; i++){
                string tempnumstring;
                getline(inputFile,tempnumstring);
                num=stoi(tempnumstring);
                arr[i]=num;
            }
            // 记得收尾:关闭文件、释放动态数组内存
            inputFile.close();
            delete[] arr;
        }
    }
};

内容的提问来源于stack exchange,提问作者Sabeer Faisal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:55:17