引入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
相关产品推荐
相关产品推荐

