需要帮助更正作业代码,C++输入/输出



我第一次介绍Comp Sci课程。我的任务是输入一个.txt文件,然后输出一个修改后的.txt文件。我遇到的第一个问题就是修复目录。我照做了,.txt文件一切都很好,只是教授说我在switch语句中有一个错误。

#include <fstream>
#include <iostream>
using namespace std;
int main()
{
int s = -2, a = 0, b = 0, NumIn;
ifstream inFile("NumbersIn.txt");
if (inFile.fail()) {
cout << "Unable to open file" << endl;
return -1;
}
ofstream outFile("RevisedNumbers.txt");
while (!inFile.eof()) {
inFile >> NumIn;
cout << NumIn << endl;
if (NumIn < 0)
NumIn = -1;
else if (NumIn > 0)
NumIn = 1;
outFile << NumIn << endl;
switch (NumIn) {
case -1:
a += s;
break;
case 0:
s += 1;
case 1:
b += s;
}
}
outFile.close();
inFile.close();
cout << "A = " << a << endl;
cout << "B = " << b << endl;
cout << "S = " << s << endl;
return 0;
}

输出:

0
-2
9
14
-22
12
6
-9
12
13
-33
21
9
0
1
2
3
4
1
A = -4
B = -9
S = 0
Program ended with exit code: 0

我在这里包括赋值问题,所以我使用sab作为整数的原因是:

您的程序将需要以下文件
输入文件:NumbersIn.txt(附加到此分配(
输出文件:RevisedNumbers.txt
您的程序将会使用以下变量:
int s=-2,a=0,b=0。NumIn
只要输入文件中有数据,您的程序就会将一个数字读取到变量NumIn中,将其打印在屏幕上,然后确定以下内容:
如果NumIn为负数,将其更改为-1
若NumIn为正数,将其改为+1
如NumIn为零,则不执行任何操作
将NumIn的新值写入输出文件RevisedNumbers
更新NumIn后,使用switch语句以NumIn的当前值为基础
当NumIn为-1时,将a的值增加S
当NumIn为0时,将S增加1
当NumIn为1时,将B的值增加S
如果您不再需要读取数据,则打印出a、B和S的当前值。

提交您的程序副本
屏幕输出
输入文件
输出文件。

您的版本:

switch (NumIn) {
case -1:
a += s;
break;
case 0:
s += 1;
case 1:
b += s;
}

要修复它,请添加两个break语句:

switch (NumIn) {
case -1:
a += s;
break;
case 0:
s += 1;
break;
case 1:
b += s;
break;
}

如果没有它们,情况0将进入情况1。这样做实际上是合法的,但被认为是一个常见的错误,所以如果你的失误是故意的,你应该总是发表评论。我想这次不是。

最新更新