我有一个看起来像这样的.dat文件
x -3
r 6
t -2
a 4
w 65
u 83
l 1
m 8888
我试图创建这个文件,然后使用infile为变量赋值。例如,int x = -3
。我可以阅读所有的价值观,但我的问题是如何在我阅读之后做我想做的事。
infile.open("test.dat");
while (infile.peek() != EOF) {
//infile >> check; //gets string from file
//cout << check;
getline(infile,check);
//cout << check << endl;
}
从这里开始我会使用一个堆栈,然后再将它们弹出来吗?
答案 0 :(得分:0)
您是否尝试过以下内容?
int value, x;
char variable;
infile.open("test.dat");
while (infile.peek() != EOF) {
infile >> variable; // get variable
infile >> value; // get value
switch(variable){
case 'x':
x = value;
break;
default:
cout << "Unknown variable." << endl;
break;
}
}
编辑:根据UKMonkey和Infixed建议,您也可以将值存储在地图中。
map<char, int> variables;
while (infile.peek() != EOF) {
infile >> variable; // get variable
infile >> value; // get value
variables[variable] = value;
}
您可以从地图输出值。
for(auto itr : variables){
cout << itr.first << " : " << itr.second << endl;
}
或类似
cout << variables['x'] << endl;