C ++ - 代码在我的机器上运行,但不在我的学校服务器上(cin.getline())

时间:2012-03-25 23:59:13

标签: c++ cin

这段代码在我的机器上工作正常,但它不在我的学校服务器上。 该程序是一个简单的文本编辑器,当没有行号输入时,这一小部分只打印出错误。

这只是我代码的一部分。在我的机器上,当没有输入行号时,它转到if语句。但是,在服务器上,它没有,而是所有空格都变为“0”。

char c[6];
int line = 0;
cin.getline( c, 6 );

.
.
.

else if( c[0] == 'I' ){
    line = atoi( &c[2] );

        if( c[2] == '\0' ){
            cout << "Missing line number for insert" << endl;
        }
}

有什么想法吗?或者有人知道处理这个问题的更好方法吗?

1 个答案:

答案 0 :(得分:1)

一种可能性是你在家里建立调试模式,在这种情况下你的'c'缓冲区用零初始化。在学校,你使用'release'模式构建,在这种情况下你的c缓冲区没有初始化,但会有不确定的值。

您应该使用带

之类的行初始化'c'缓冲区
char c[] = {0,0,0,0,0,0};