我遇到了scanf()
卡住的問題,繼續該程序的唯一方法是輸入exit。Scanf卡住
我的輸入是這樣的:
L 1 1 3 4 C 2 3 4
,其中數字是L和C.
int main()
{
// Get use input and put in array
int count, x;
int array[4];
char type;
scanf("%c", &type);
for (x = 0; x < 2; x++)
{
if (type == 'L')
{
for (count = 0; count < 4; count++)
{
scanf("%d", &array[count]);
}
} else if (type == 'C')
{
for (count = 0; count < 3; count++)
{
scanf("%d", &array[count]);
}
}
if (scanf("%*[ \n\t]%c", &type) == 0)
{
printf("Error");
break;
}
}
scanf函數語句有問題的參數:
scanf("%*[ \n\t]%c", &type)
作品好吧,如果我不是在線的末尾,但另有其他。但是,我不知道有多少個L和C對象,因此不能依賴for循環的值。
我有點失落你的問題。該代碼正好讀取兩個塊(每個都是'L####'或'C###'),跳過空格,再讀一個字符,然後退出。它應該做什麼?你讓它聽起來像它應該保持閱讀 –
目前它只讀了兩個,但我將它改爲一個while循環,以便我可以讀取未知數量的塊。我在閱讀所有的塊時遇到了困難,不過因爲閱讀最後一個字符時的scanf被卡住了,雖然從技術上講所有的字符都被讀過了,所以我猜這是它被卡住的原因。 – Denis
檢查每個'scanf()'調用的返回值;它可能是其中一個失敗併爲下一個造成問題的其中一個。 –