對不起,一個愚蠢的問題,但這真的開始困擾着我。不能讀取輸入行C
我需要從控制檯取一行輸入。這是相關的代碼片段:
int number_read=0;
char line[80];
printf("Enter register address: ");
number_read = scanf("%s\n", line);
printf("number of characters entered: %d; characters entered: %s.\n", number_read, line);
if (number_read > 0) {
<read some registers and display the results.>
}
它不起作用。打印「輸入寄存器地址」行,光標停在行的末尾,當我按下Enter時移動到下一行,但是沒有其他事情發生。我試着更換的fscanf scanf()的(標準輸入,...),用於fgets(標準輸入),獲取,GNU的函數getline(),很短的函數,做同樣的事情,與診斷:
char *new_line, ch;
for(;;) {
ch = fgetc(stdin);
if(ch == EOF) break;
if((*line++ = ch) == '\n') break;
printf("Line so far: %s\n", line);
}
*line='\0';
我得到了所有人的同樣答覆。我包含了所有必需的標題。
我在一個Windows XP的盒子上,用gcc 3.4.5(mingw)編譯。
任何人都可以看到我做錯了什麼?
remove從scanf函數,將工作 – user2760375
可編譯的例子可能是有幫助的「\ n」,有機會,這個問題是不是你認爲它是。 –
感謝user2760375,但它沒有區別。 – user3282703