为您找到"
while((scanf("%d",&a))!='\n')这句哪错了
"相关结果约100,000,000个
即使是 scanf("%c",&a) ,也不会 返回 '\n'.这样简单:char a[80];printf("input some digits:");gets(a);printf("%d",strlen(a));
因为scanf在读取数字时返回1条件为真,循环继续。这样就会无限输入数字但是都会忽略掉。
c语言的标准格式化输入函数scanf("%d", &a)表示从键盘输入一个整数存入变量a的地址空间 并返回正确输入的个数 1 所以printf("%d\n", scanf("%d", &a));==》printf("%d\n", 1);所以输出1
scanf("%d",&x)其返回值为正确输入的变量个数. 正确执行时会成功给x赋值,即赋值了一个变量. 返回1.当出错的时候,比如输入了字母,那么就会返回0.当遇到文件结束标记EOF的时候,会返回-1.所以,这个代码,不一定要ctrl +z 输入任意非数字字符就可以终止循环了.ctrl +Z 就是windows上输入EOF标记的...
读取整数,q不是整数,q还在缓存中,下次读取又是q,如此无限循环了。如果类型正确会依次读取每个数。
可以使用啊 不过你原来需要输入一次回车表示输入结束了,加入\n后,你就需要输入两次回车才表示一次输入结束。scanf会根据 ""的格式去匹配你的输入,加入了\n,它只有遇到\n才认为是一次合法的输入,这就像逗号是一样的,如果""有逗号,那你必须输入逗号才可以 \n也是一样的 ...
d 是转换说明符 ,\n 是转义字符 d通常用在printf函数和scanf函数中,%d 规定了输入输出项的形式,%d 的意思是以十进制整数的格式输入或输出 \n 是回车换行的控制代码,其ASCII码值为10,也经常用于printf函数和scanf函数等
持续输入float值到a中, 直到遇到EOF为止.不过 一般不会在scanf中加换行, 所以这个很可能是错误用法.while(scanf(“%f”,&a)!=EOF)这种才是常见的.这样的写法 用于机器判题的场合, 系统自动输入都是以EOF结尾的(本质原因是系统通过重定向, 用文件数据做为输入.)
所以第一次那个\n是被%d后的\n收走了;第二次输入的1由于已经没有对应的变量接收了,所以还留在输入缓冲区里。第二次输入的\n被当作输入结束命令启动对应变量接收数据。所以最后a得到的是第一次输入的数据。你可以第二次输入与第一次不同的数,现输出来验证。所以正确的写法应该是scanf("%d",&...