次のコードに関して混乱しています。
#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を示していません
ここで何か不足していますか?