所以我正在为一个更大的项目编写一些测试代码,当输入代码和地址时,它将显示特定的数据,但目前什么都没有运行,我根本没有得到任何输出。
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
int main(){
std::ifstream testdata; testdata.open("testdata.csv");
std::string line, csvitem;
int linenum = 0;
int linenumsought = 2;
if(testdata.is_open()){
while (testdata){
linenum++;
if(linenum == linenumsought){
std::cout << line << '\n';
std::istringstream myline(line);
while(getline(myline, csvitem, ',')){
std::cout << csvitem << '\n';
}
}
}
testdata.close();
}
return 0;
}
我真的很累,很可能只是错过了一些小事,哈哈,但如果有人能帮助我解释为什么我根本没有从我的 csv 文件中得到任何显示,我将非常感激。
House,111111,2046
House2,222222,2222
csv 文件^^
每当我设法获得输出时,它都会在终端中无限地运行创建行。或者它只会说“权限被拒绝”
您的代码错过了将文件读入
line
变量的情况。
一个简单的更正是替换:
while (testdata){
具有以下内容:
while (std::getline(testdata,line)) {
此更改不仅一次读取一行,而且当读取失败时结束循环(这将发生在文件末尾或存在某种类型的错误)。