| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 372 人关注过本帖
标题:格式显示的问题
只看楼主 加入收藏
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
结帖率:79.17%
收藏
 问题点数:0 回复次数:3 
格式显示的问题
大家知道 如果用 scanf()做输入的时候,误输入一个字符的时候
只要用 backspace 后退键清除,重新输入就可以 ,在后退的时候屏幕上的字符是连续的
但是 如果用
i = 0;
flag = 0 ;
while(1)
{
ch = getche();
if(ch == KEY_ESC )
{
printf("\nExit!\n");
goto Exit ;
}
else if((ch == '=')||(ch == ENTER)) /*Ìá½»´ð°¸*/
{
Expression[i++] = '\0';
if(strcmp(stdandardStr, Expression) == 0)
printf("\nMatch!\n"); flag = 1 ;
break ;
}
else
{
Expression[i++] = ch;
}
} /*end while*/

上面的方式的话
虽然也可以用 backspace 后退键清除,但是在这个后退的地方会留下一个小空格
不知道这个空格怎么清除!!!
怎么解决这个问题呢 ??
想和大家讨论下!!
搜索更多相关主题的帖子: 格式 
2006-08-05 16:55
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
getchar(); 好象也要等到按下回车才把流中字符送走
可以利用 ungetc ()把 最后的一个字符送回去
然后用 scanf 结束怎么样??
但是不知道 getchar(); 取的是第一个字符还是最后的一个字符 ??

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2006-08-05 17:58
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
getchar()取的是第一个字符.
至于您说的清除空格难以实现,用getche立即被读入.

对不礼貌的女生收钱......
2006-08-05 21:41
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 

#include <stdio.h>
#define ENTER 0x0d

main()
{
int i=0;
char c;
char str[10];
clrscr();

while(!kbhit())
{
clrscr();
printf("%05d",i++);
}

clrscr();
printf("End.");
for(;;)
if(kbhit() != 0)
{
c=getchar();
if(c == ENTER ) break;
else ungetch(c);
}
scanf("%s",str);
printf("%s",str);
return 0;
}
你看看这样为什么不行,不是每次在不是输入 回车的时候,返回到流中
为什么scanf不能接收这些字符
而 这样的时候


#include <stdio.h>
#define ENTER 0x0d

main()
{
int i=0;
char c;
char str[10];
clrscr();

while(!kbhit())
{
clrscr();
printf("%05d",i++);
}

clrscr();
printf("End.");
for(;;)
getchar();

scanf("%s",str);
printf("%s",str);
return 0;
}
scanf能接收 除拉第一个被 getchar();接收外的所有还在留中的字符呢 ??


~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2006-08-05 23:30
快速回复:格式显示的问题
数据加载中...
 
   



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

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