| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1791 人关注过本帖
标题:本人发现c语言中关于scanf()函数一个怪异的问题?
只看楼主 加入收藏
hengshan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2005-4-15
收藏
 问题点数:0 回复次数:19 
本人发现c语言中关于scanf()函数一个怪异的问题?

#include <stdio.h> int main() { char s[20]; char temp; printf("input the temp \n"); printf("q or t? "); scanf("%c",&temp); while(1) { printf("input the s\n"); scanf("%s",s); printf("%s\n",s);

printf("q or t? "); scanf("%c",&temp); if(temp == 'q') break; } return 0; } 低二条scanf("%c",&temp);语句总是的不到执行,怎么回事啊,可是如果换成c++下的cin就好了

搜索更多相关主题的帖子: c语言 scanf 函数 怪异 
2005-05-24 11:13
钢燃
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-5-19
收藏
得分:0 
哎呀,有点难度

寻找同济的朋友的网络连接
2005-05-24 11:47
Antigloss
Rank: 1
等 级:新手上路
帖 子:109
专家分:0
注 册:2004-12-30
收藏
得分:0 

#include <stdio.h> int main() { char s[20]; char temp; printf("input the temp \n"); printf("q or t? "); scanf("%c",&temp); while(1) { printf("input the s\n"); scanf("%s",s); printf("%s\n",s); getchar();/*加上这句*/

printf("q or t? "); scanf("%c",&temp); if(temp == 'q') break; } return 0; } ==================================== 另外,程序有待改进

2005-05-24 11:56
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
错了,执行了,但因为你的键盘缓冲区里有东西,所以他直接就读他了,而不在等你输入!

在想要让计算机等待你敲键盘的地方之前清一下键盘缓冲区就可以了:fflush(stdin);(知道加哪吧?)!

差点把你忘了...
2005-05-24 11:56
钢燃
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-5-19
收藏
得分:0 
Antigloss 我想知道getchar();/*加上这句*/在这里的作用?

寻找同济的朋友的网络连接
2005-05-24 12:12
钢燃
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2005-5-19
收藏
得分:0 
天使预备役 请问清一下键盘缓冲区就可以了:fflush(stdin); 在什么头文件里?

寻找同济的朋友的网络连接
2005-05-24 12:14
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
应该是了,就在stdio.h头文件中!

差点把你忘了...
2005-05-24 13:23
小悟空
Rank: 1
等 级:新手上路
帖 子:218
专家分:0
注 册:2005-5-14
收藏
得分:0 
我看了好久才看懂,,,哎~~~!!!

2005-05-24 20:38
lovec
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-5-22
收藏
得分:0 
看不懂!不晓的写的些什么、

2005-05-24 23:43
cosixu
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2004-10-11
收藏
得分:0 
scanf("%c",&temp); file://第一次输入一个数据的时候其实是两个字符存入缓冲区了 比如你输入"q"然后回车,那么字符q和回车就留大缓冲区 解决的办法是加一个变量char ch; 然后在第一次scanf("%c",&temp);后面加一句ch=getchar();问题就解决了
2005-05-25 05:10
快速回复:本人发现c语言中关于scanf()函数一个怪异的问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017906 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved