ubuntu18系统,代码和程序运行如下,问题是:本意是, printf("请输入数据:");这一行应该先打印输出,然后再从键盘输入数据。但是运行结果显示是先从键盘输入数据,然后打印输出 "请输入数据:",这是什么原因呢?
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main()
{
// 获取从键盘输入的数据
printf("请输入数据:");
char buf[1024] = {0};
ssize_t size = read(STDIN_FILENO, buf, sizeof(buf));
printf("buf : %s\n", buf);
printf("len : %ld\n", strlen(buf));
printf("return size : %ld\n", size);
return 0;
}
运行,hello world是键盘键入的内容
hello world
请输入数据:buf : hello world
len : 12
return size : 12