#include<stdio.h>
int main()
{
char a1[5],a2[5],a3[5],a4[5];
scanf("%s",a1);
printf("END1");
scanf("%s",a2);
printf("END2");
scanf("%s",a3);
printf("END3");
scanf("%s",a4);
printf("END4");
puts(a1);puts(a3);puts(a4);
}
aa bb回車
END1END2cc dd回車
問:為什麼在我輸入完aa bb回車才出現END1? 不是應該輸入aa,在輸入完空格(執行完 scanf("%s",a1);)就接著執行printf("END1");輸出END1嗎?跳過輸出END1先執行scanf("%s",a2); ??
樓主是想你輸入完aa+空格以後系統能自動識別,並且緊跟著輸入END1?
操作系統有自已的鍵盤緩沖區,每輸入一個字符就放系統鍵盤緩沖區中,當輸入回車時,系統停止調用字符輸入功能,串輸入操作結束。
(此時才進入輸入緩沖區)