我是相當新的C很抱歉,如果這是一個愚蠢的問題,但是當我運行下面的代碼:gets()接受輸入而實際上沒有給它任何輸入?
#include <stdio.h>
int main() {
int i;
int test[10];
char string[81];
for(i = 0; i < 10; i++){
scanf("%d", &test[i]);
}
for(i=0; i < 7; i++){
gets(string);
printf("String was entered\n");
}
}
並輸入任何10位,行「字符串輸入了」將即使打印我沒有在命令窗口中輸入字符串。誰能解釋爲什麼?有沒有辦法阻止它發生?
謝謝!
使用'gets'幾乎自動有未定義的行爲的任何程序。 .. – 2010-09-18 01:30:11
即使沒有閱讀比標題更進一步,我知道你正在使用(濫用)scanf – pmg 2010-09-18 09:20:20
@pmg你能詳細說明嗎?爲什麼這是濫用scanf? – Sam 2010-09-19 00:03:20