读取.txt文件中的多行并输出每行的答案
Reading multiple lines in a .txt file and outputting an answer for each line
我编写了一个程序,它接受来自.txt
文件的输入并输出总和。我已经正确地在一行中获得了数字的总和。我需要文件中所有行的输出。
对此的要求是包含一个分号,以指示.txt
文件中的行尾。
#include <iostream>
#include <string>
#include<fstream>
using namespace std;
int main()
{
std::ifstream ifs{"formula.txt"};
int sum = 0;
ifs >> sum;
//int input = 0;
{
for (char a; ifs >> a;)
{
int num;
ifs >> num;
if(a == '+')
{
sum += num;
}
if(a == '-')
{
sum -= num;
}
if( a== ';')
{
sum += num;
sum -= num;
}
}
cout << sum << endl;
}
}
行cout << sum << endl;
放在for之后,所以你只在末尾写一个值,而不是每次到达';"时
的值在
if( a== ';')
{
sum+= num;
sum-= num;
}
总和保持不变,但溢出的情况除外
必须是类似的东西
if( a== ';')
{
cout << sum << endl;
sum = 0;
}
因为";"标记公式的结尾。
你的循环不能管理像10 + 3 + 0 + 25
这样的表单,因为每一圈对你来说总是管理一个运算符,然后是一个数字
输入是15;10 ...
的,而不是无法管理的,你读取 15 并将其保存为总和,然后你读取 ';' 并分配一个with,然后你读取 10 并分配num所以 10 丢失
提案 :
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream ifs("formula.txt");
if (!ifs.is_open()) {
cout << "cannot open formula.txt" << endl;
return -1;
}
int val;
while (ifs >> val)
{
char op;
while (ifs >> op)
{
if (op == ';')
{
cout << val << endl;
break;
}
int num;
if (! (ifs >> num)) {
cout << "unexpected EOF" << endl;
return -1;
}
if (op == '+')
{
val += num;
}
else if (op == '-')
{
val -= num;
}
else {
cout <<"invalid operator '" << op << ''' << endl;
return -1;
}
}
}
return 0;
}
编译和执行
pi@raspberrypi:/tmp $ g++ -pedantic -Wextra s.cc
pi@raspberrypi:/tmp $ cat formula.txt
15;10+3+0+25;5+6-7-8+9+10-11;
pi@raspberrypi:/tmp $ ./a.out
15
38
4
pi@raspberrypi:/tmp $
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- 欧拉项目#8答案是大以获得有效答案
- C++:将控制台输出存储在宏中更好吗
- C++ 中 pow() 函数的输出没有给出准确的答案
- 我的 cout 上有一个奇怪的输出,它把答案放在第一位,然后在我调用它的地方放一个奇怪的输出.我该怎么办?
- 为什么这两种输出样式给出不同的答案
- 无法在 for 循环中的 pow 函数上输出答案
- 以下代码的输出是什么(答案因差异编译器而异)
- 为什么意外值6295648在输出中带有答案11110001?在这里输入是241和2
- 读取.txt文件中的多行并输出每行的答案
- 你如何得到一个方程,以十进制输出答案
- 使用字符串输出特定答案
- 用c++四舍五入输出答案
- 除法未输出正确答案c++
- 算法输出正确答案,但编程挑战给了我错误的答案
- 计算未输出预期答案
- 简单的计算器问题(不输出答案)
- 程序输出"Heads",与随机生成的答案无关