【发布时间】:2010-10-15 22:19:58
【问题描述】:
我在一个文本文件中有这个:
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???
【问题讨论】:
-
你的输入文件肯定是制表符分隔的吗?你得到什么输出?
-
“似乎它不起作用”没有帮助。请提供详细信息。
-
“似乎它不起作用”不是对问题的充分描述。哪些症状会导致您得出这样的结论:这段代码没有按照您的预期执行?您是否尝试过附加一个调试器来单步执行程序并查看有什么不正常的地方?