程式碼壹:
#include <stdio.h>
int main(void)
{
int n=0;
char string[3];
printf("Please input:\n");
scanf("%c %c %c",&string[0],&string[1],&string[2]);
/*%c之間有空白' '*/
for(n=0;n<3;n++){
printf("(%d)%c ",n,string[n]);
}
system("PAUSE");
return 0;
}
Case1:
- 輸入:abc
- 輸出:(0)a (1)b (2)c
- 輸入:_a_b_c ( _代表空白 )
- 輸出:(0) (1)a (2)b
- 輸入:a_______b____c
- 輸出:(0)a (1)b (2)c
- 輸入:a___ (按enter跳行)
______c
- 輸出:(0)a (1)b (2)c
因此可以得知,scanf("")內加上空白代表跳過輸入進來的空白字元(whitespace)
直到碰上下一個輸入,Case2中,scanf()首先取得了一個空白字元,並存入陣列內,接
下來便忽略剩餘部分,直到碰上b,c
沒有留言:
張貼留言