我尝试从txt文件中检索整数并将它们相加以获得总数。我是使用stringstream
类完成的。文本字符串为: - 100 90 80 70 60
。提取整数并添加它们的代码如下: -
#include<iostream>
#include<fstream>
#include<sstream>
using namespace std;
int main(void)
{
ifstream inFile("C:\\computer_programs\\cpp_programs\\exp6.txt",ios::in);
stringstream sstr;
string from_file;
int grade;
int total = 0;
getline(inFile,from_file);
sstr<<from_file;
while(sstr
{
sstr>>grade;
cout<<grade<<endl;
total+=grade;
}
cout<<total<<endl;
inFile.close();
return 0;
}
此代码工作正常。在此之后,我将文件中的字符串修改为“您得分的等级为100 90 80 70 60”。现在,如果尝试运行上面的代码,我得到输出: -
0
0
0
0
0
0
你能帮助我并告诉我在后一种情况下如何计算总数吗?另外,在这里我知道文件中的整数数量。当我不知道文件中的成绩数量时会怎么样?
答案 0 :(得分:0)
因为“你得分的成绩是”是你的弦流的主要部分。
你无法从中读取int。它只会给你一个0
您可以将某些字符串读作“Entry”并通过编写一些函数来解析Entry。
答案 1 :(得分:0)
我将回答问题的第二部分,即在不知道输入总数的情况下阅读输入: -
#include<iostream>
#include<fstream>
#include<sstream>
using namespace std;
int main(void)
{
ifstream inFile("C:\\computer_programs\\cpp_programs\\exp6.txt",ios::in);
string data;
int grades,total=0;
getline(inFile,data);
stringstream sstr;
sstr<<data;
while(true)
{
sstr>>grades;
if(!sstr)
break;
cout<<grades<<endl;
total+=grades;
}
cout<<total<<endl;
return 0;
}