c++跳过if和for循环
c++ skipping the if and for loops?
我正在编写一个程序,该程序将接受用户的文件,并根据文件中的数据进行一些计算。第一行包含多项答案测试的正确答案(共有6个问题)。第二行包含学生ID,第三行包含学生答案,第四行包含新的学生ID,然后是答案等。
我需要浏览文件,选择正确的答案,并将学生的答案与之进行比较。然后,为每个学生显示学生ID,每个问题的对错和空格数(?)。
这是我下面的代码,我被卡住了,因为程序跳过了循环,我不知道该怎么办?
#include <iostream> // include to use cin and/or cout
#include <fstream> // include to use ifstream
using namespace std;
int main ()
{
int id, c, w, mis, s, numberL;
string answer, a, correct;
string info[numberL];
char question [] = {'?'};
cout << " enter file " << endl;
cin >> a;
ifstream myfile(a.c_str());
myfile >> answer;
s = 0;
while (s <= numberL)
{
myfile >> info[s];
s++;
}
for (int i =3; i < numberL; i = i+2)
{
if ( numberL == answer[1])
{
c = c+1;
}
if ( numberL == question [1])
{
mis = mis+1;
}
if ( numberL != answer [1] || numberL != question [1] )
{
w = w+1;
}
}
printf("Student # 1 2 3 4 5 6 Mark %n");
cout << c << endl;
cout << w << endl;
cout << mis << endl;
cout << answer ;
}
.txt文件中的数据如下:
AACBEE
1093345
BADBEE
1234567
ACCBEE
8123345
BAC?BE
1234566
A?B?EE
看看这个代码
int id, c, w, mis, s, numberL;
string answer, a, correct;
string info[numberL];
在你看来,数字L包含什么?文件中的行数?(我猜在这里)课程数量?不管它应该是什么,你都需要设置它。看看第三行——你告诉编译器分配那么多行——它不知道你的意思是多少行。循环同样混淆
这不是一个语言问题,而是一个程序设计问题——数字L是什么意思?
这段代码不应该编译的注释是不对的。这取决于编译器选项。通常都会。根据这个问题编写并执行了代码。发生的情况是,标准的C有些不忙的地址指向新声明的整数。这意味着您的整数将具有随机值。
int id, c, w, mis, s, numberL;
cout << id << " "<< c <<" "<< w <<" "<< mis <<" "<< s <<" "<< numberL<<"n";
周四晚上上完厕所后在我的电脑上:
4199344 0 4199437 0 2 32765
数字L=32765。
while (s <= numberL) { myfile >> info[s]; s++; }
达到32765次。它会弄乱32765字节的内存(如果您的机器上的char==byte,因为str[i]指的是字符串开始后的第i个字符),从最初的开始,未绑定地址碰巧被分配给varinfo,如果不是myfile length和smart<lt;实施我不确定它有时是否真的会。可能会也可能不会导致错误(segfault)
for (int i =3; i < numberL; i = i+2)
检查3<32765.没错。作品约16381次。中为真(99.9999.%)
if ( numberL != answer [1] || numberL != question [1] )
{
w = w+1;
}
它将w=4199437的"初始"值修改为类似425的smth…
程序输出(带输入"a"):
4199344 0 4199437 0 2 32765
enter file
a
Student # 1 2 3 4 5 6 Mark %
0
4215818
0
你看不到第4行,因为
字符串答案,a,不正确;
默认为"-空字符串,并且我没有要输入的文件。
- 如何在C++中从两个单独的for循环中添加两个数组
- 为什么我的for循环不能正确获取argv
- 在基于范围的for循环中使用结构化绑定声明
- 通过for循环使用用户输入填充列表
- 使用for循环检查数组中的重复项
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 正在使用for循环创建QScatterSerie
- Python中的for循环与C++有何不同
- 在更改for循环的第三部分后,未使用for循环结果
- 在 for 循环中查找问题时遇到困难
- 嵌套for循环C++的问题(初学者)
- 如何用for循环在c++中生成单词三角形
- 如何在for循环中包含两个索引值的测试条件
- 带有多个独立参数的C++For循环
- 为什么我的程序在for循环中k=0时返回垃圾值
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- C++-For循环未执行
- 基于范围的 for 循环:迭代使用一个元素扩展的向量
- C++ 无法在字符数组中使用 for 循环打印字母模式