gpt4 book ai didi

C++:从文本文件中读取并分离到变量中

转载 作者:可可西里 更新时间:2023-11-01 15:51:40 28 4
gpt4 key购买 nike

我在文本文件中有这个:

John 20 30 40
mike 30 20 10

我如何从文本文件中读取并将它们分成变量名、var1、var2、var3。这是我的尝试,似乎不起作用。请帮忙。

#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;

int main () {
string name,result;
int number1;
ifstream myfile ("marks.txt");
if (myfile.is_open())
{
while ( !myfile.eof() )
{
getline (myfile,name,'\t');
getline (myfile,var1,'\t');
getline (myfile,var2,'\t');
getline (myfile,var3,'\t');
cout << name << var1 << var2 << var3;


}

myfile.close();

}

else cout << "Unable to open file";

return 0;
}

编辑 1:

夜曲建议:

#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;


int main()
{
ifstream inputFile("marks.txt");
string line;

while (getline(inputFile, line))
{
istringstream ss(line);

string name;
int var1, var2, var3;

ss >> name >> var1 >> var2 >> var3;
cout << name << var1 << var2 << var3 << endl << endl;
}
}

输出:

John203040

mike302010

302010

为什么还有一个 302010???

最佳答案

像这样的东西应该可以工作(我手头没有编译器,所以你可能需要稍微调整一下):

#include <iostream>
#include <sstream>
using namespace std;


int main()
{
ifstream inputFile("marks.txt");
string line;

while (getline(inputFile, line))
{
istringstream ss(line);

string name;
int var1, var2, var3;

ss >> name >> var1 >> var2 >> var3;
}
}

编辑:刚刚又看到了,不知道为什么之前选择了获取行的方式。以下(更简单的解决方案)不起作用吗?

#include <fstream>
using namespace std;

int main()
{
ifstream fin(“marks.txt”);

string name;
int var1;
int var2;
int var3;

while (fin >> name >> var1 >> var2 >> var3)
{
/* do something with name, var1 etc. */
cout << name << var1 << var2 << var3 << “\n”;
}
}

关于C++:从文本文件中读取并分离到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946558/

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