gpt4 book ai didi

c++ - MinGW的Qt getline错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:56 25 4
gpt4 key购买 nike

我是 C++ 和 Qt 的初学者。目前,我正在研究从开源网站获得的 Qt 程序。这是一个个人开支跟踪应用程序。当我尝试在 Qt Creator 中构建此项目时,出现错误:

C:\Qt\Saved project\Expense-Tracker-master\dataRead.h:152: error: 'getline' 未在此范围内声明 while((read = getline(&line, &len, labelFile)) != -1){ ^

相关代码如下:

std::vector<std::string> * readLabel(const char* labelToRead){
std::vector<std::string> * labels = new std::vector<std::string>;
FILE * labelFile = fopen(labelToRead, "r");
if(labelFile == NULL) std::cout<<labelToRead<<std::endl;
//TODO -- throw if failure
char * line = NULL;
size_t len = 0;
ssize_t read;
while((read = getline(&line, &len, labelFile)) != -1){
std::string temp(line);
std::string label(temp.begin(), temp.end()-1);
labels->push_back(label);
}
free(line);
fclose(labelFile);
return labels;}

我在 Google 中搜索,getline() 和 MinGW 编译器之间似乎出了问题。有人可以帮我解决这个问题。

另外,我已经包含了字符串标题。当我输入 'std::getline' 时,它显示另一个错误:

C:\Qt\Saved project\Expense-Tracker-master\dataRead.h:152: error: no matching function for call to 'getline(char**, size_t*, FILE*&)'
while((read = std::getline(&line, &len, labelFile)) != -1){
^

最佳答案

我找不到使用 FILE* 的标准函数 getline。我认为您正在寻找的功能是 fgets .如果您使用的是 Qt,我猜您是在使用 C++ 进行编码。 FILE* 属于 C。您应该考虑使用 C++ 函数而不是 C(参见 fstreams)。

关于c++ - MinGW的Qt getline错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38563487/

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