为了账号安全,请及时绑定邮箱和手机立即绑定

大神指点一下,怎么里面还有字符???

大神指点一下,怎么里面还有字符???

拉风的咖菲猫 2022-12-22 17:13:28
1 #include<stdio.h>2 #include<string.h>3 #include<stdlib.h>4 5 6 int main()7 8 {9 int a = 0;10 11 char buf[48] = {0};12 printf("输入一个整数:");13 scanf("%d", &a);14 fflush(stdin);  15 printf("输入一个字符串:");16 gets(buf);17 printf("buf = %s\n", buf);18  19 return 0;20 }程序如上,在终端运行结果如下:[hao@Roc 桌面]$ ./a.out输入一个整数:5输入一个字符串:buf = [hao@Roc 桌面]$ 为什么gets(buf)中接收的是一个空格或者是回车符,前面的fflush(stdin);不是清空了输入缓冲区了吗?
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

flush(stdin)是用来清空输入缓冲区,通常是为了确保不影响后面的数据读取,例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin)。
但要注意的是,此函数仅适用于部分编译器(如VC6),但是并非所有编译器都要支持这个功能(如gcc3.2)。这是一个对C标准的扩充。
你在linux下用的应该是gcc,因此可能不起作用。

查看完整回答
反对 回复 2022-12-25
?
守候你守候我

TA贡献1802条经验 获得超10个赞

1、使用proces对象中的process.stdin对象输入用户的数据。

2、再使用process对象中的process.stdout对象输出数据,展示属性和属性值。

3、查看node.js中的数组,如文件路径和属性,可以直接使用argv属性遍历文件。

4、若查看正在运行的Node.js程序对应的进程占用多少内存,直接使用process.memoryUsage方法。

5、process对象中的nextTick方法可以将一个函数推迟到下一个方法执行完毕时开始执行。

6、结合fs模块和process对象中的nextTick方法,读取文件中的内容。


查看完整回答
反对 回复 2022-12-25

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信