在用c ++调试程序时,我得到一个空白屏幕

时间:2013-06-01 19:41:28

标签: c++ visual-studio debugging visual-studio-2012

现在发生的事情(在编辑代码之后)是每当我输入多个单词时,它就会出现痉挛。任何修复?谢谢。对不起,如果我好像什么也不知道。昂贵的书籍和没人教我,让我在线阅读教程。 (编辑后的代码如下。)

#include <iostream>
#include <string>
using namespace std;

string qu;

int y;

int main()
{
y = 1;
while (y == 1)
{
    cout << "Welcome to the magic 8-ball application." <<"\nAsk a yes or no question, and the 8-ball will answer." << "\n";
    cin >> qu;
    cout << "\nProccessing...\nProccessing...\nProccessing...";
    cout << "The answer is...: ";
    int ans = (int)(rand() % 6) + 1;
    if (ans == 1)
        cout << "Probably not.";
    if (ans == 2)
        cout << "There's a chance.";
    if (ans == 3)
        cout << "I don't think so.";
    if (ans == 4)
        cout << "Totally!";
    if (ans == 5)
        cout << "Not a chance!";
    if (ans == 6)
        cout << "75% chance.";
    system("CLS");
    cout << "\nWant me to answer another question?" << "(1 = yes, 2 = no.)";
    cin >> y;
    }

return 0;

}

2 个答案:

答案 0 :(得分:5)

 while (y = 1);

应该是

 while (y == 1)

您还有;,应使用==

答案 1 :(得分:0)

这里有无限循环:

while (y = 1);

删除;。另外y == 1,而不是y = 1


为了避免将来出现这些错误:

1)以这种方式进行反向比较:

while (1 == y)

现在,如果您输入=而非==,则代码无法编译,因为1 = y无效。

虽然大多数编译器都会警告你,如果你在条件下进行任务。你不应该忽略编译器警告。

2)将开口支架放在同一条线上:

while (1 == y) {
// ...... some code
}

现在,如果您在行尾输入;,那么您的代码仍然正确无误:

while (1 == y) {;
// ...... some code
}