C++;循环逻辑错误? 我在处理C++逻辑回路时遇到了一些麻烦。通过测试,我认为这是Grades()函数循环中的错误

C++;循环逻辑错误? 我在处理C++逻辑回路时遇到了一些麻烦。通过测试,我认为这是Grades()函数循环中的错误,c++,C++,基本上,这个程序应该得到名字和考试分数,看起来是这样的,但是程序在那之后就退出了,我不知道为什么。只是想看看是否有其他人注意到函数中的一个错误,该错误可能导致程序过早终止 // Grades void Grades(char names[][length], double grades[][4]) { for(int i = 0; i < amount; i++) { cout << "Name: "; cin.ignore();

基本上,这个程序应该得到名字和考试分数,看起来是这样的,但是程序在那之后就退出了,我不知道为什么。只是想看看是否有其他人注意到函数中的一个错误,该错误可能导致程序过早终止

// Grades
void Grades(char names[][length], double grades[][4])
{
    for(int i = 0; i < amount; i++)
    {
        cout << "Name: ";
        cin.ignore();

        cin.getline(names[i],length, '\n');

        cout << "Test Scores: ";

        for(int k = 0; k < 4; k++)
        {
            int num = 0;

            while(!(cin >> num) ||
                  num  < 0 ||
                  num > 100 ) 
            {
                cout << "invalid entry." << endl;
            }

            grades[i][k] = num;
        }
    }
}
//等级
无效等级(字符名称[][length],双等级[][4])
{
对于(int i=0;i100)
{

您使用的是什么编译器/操作系统


<>有时候需要在从主服务器返回之前添加一个<代码>系统(调用。如果从IDE编译,而不是直接运行程序,这通常是正确的。您可以避免从直接从命令行/ BASH等运行的问题

< P>咬每个C++初学者的东西…<代码> IOSROUND错误是“粘滞”并一直保持,直到您在流中调用
清除

while(!(cin>> num) || num  < 0 || num > 100 ) 
{
    cout << "invalid entry." << endl;
    cin.clear(); // reset the error so cin evaluates to true
    cin.ignore( -1 ); // ignore the offending input
}
奇怪的是,由于某种原因,我确实运行了这个程序,但没有显示它的输出。我不知道


正如Evan提到的,如果通过双击运行命令行程序,Windows shell默认退出。从先前存在的交互式shell运行以查看输出。
system(“暂停”)
是不可移植且非常糟糕的做法。

从命令行运行程序可以解决问题吗?是的,看起来它解决了问题。@muntoo:啊。每当我留下这样的评论,如果编辑得很快,我就会删除它们。@Jefromi我不在这里。(AFK):)可能与Xcode 4、Mac OSX 10.6.8重复。甚至没有想到这一点,这就解决了它。谢谢。比特定于平台的
系统(“暂停”)要好得多
char c;cin>>c;
@AC:等等,除了从XCode的控制台窗口之外,你是如何看到程序的其他提示并给它输入的?我很困惑。我是从XCode输出窗口做的。我继续从终端窗口做的,它运行了,我能够修复代码中的错误。@Ed:说得好!
system(“pause”);
绝对不能使用,除非在本地进行测试,或者目标操作系统已知且不会更改。
Student: ob_???_
Average Score: 60.00 Grade Letter: D

Student: jane   ???_?
Average Score: 70.00 Grade Letter: C

Student: mary
Average Score: 80.00 Grade Letter: B

Student: todd
Average Score: 90.00 Grade Letter: A

Student: alice
Average Score: 100.00 Grade Letter: A