次のコードに関して混乱しています。
#include<stdio.h>
int main()
{
char buf[100]={'\0'};
int data=0;
scanf("%d",&data);
read(stdin,buf,4); //attaching to stdin
printf("buffer is %s\n",buf);
return 1;
}
実行時に入力を提供したとします10abcd。私の理解によれば、次のことが起こるはずです。
- scanf は
10データに配置する必要があります abcdまだ標準入力バッファにあります- read が stdin を読み込もうとするとき (既に
abcdそこにあります)abcd、 をbuf - したがって、printfは印刷する必要があります
abcd
しかし、それは起こっていません.printfはo / pを示していません
ここで何か不足していますか?