我今天活见鬼了今天却遇到了这样的问题

chenfeng3000 2001-10-04 10:46:07
我今天活见鬼了,我写了很多小程序,今天却遇到了这样的问题
我简直被疯了:我本意是想每次输入字符chinput 回车后 x31=x31+1
并回显,我的期望数据是:
w
x=0
f
x=1
g
x=2
q
退出循环。
int x31=0;
char chinput
do
{
scanf("%c",&chinput);
printf("x=%d",x31++);
}while(chinput!='q');
可是天不作美,我得到的数据却是这样的:
w
x=1 x=2
f
x=3 x=4
g
x=5 x=6
q
每次循环却作了两次printf()函数,并且 printf()还要先于scanf()
执行,我真的很笨,我试了 pascal,truboC 又试着用 WHile ,for(;;)
结果都失败了,。大家救救我啊!我在此向您表示39分的感激,问题解决了
分数我一定一定给。拜托了!!!

...全文
61 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
danfer 2001-10-05
  • 打赏
  • 举报
回复
不好意思,刚才刷新除了问题
贴重复了;p
danfer 2001-10-05
  • 打赏
  • 举报
回复
// the file is used to answer question on csdn
#include <stdio.h>
int main()
{
int x31=0;
char chinput;
scanf("%c",&chinput);
for(;chinput!='q';)
{
printf("x=%d\n",x31++);
scanf("%1s",&chinput);
}
return 0;
}//快给分;)
danfer 2001-10-04
  • 打赏
  • 举报
回复
#include <stdio.h>
int main()
{
int x31=0;
char chinput;
scanf("%c",&chinput);
for(;chinput!='q';)
{
printf("x=%d\n",x31++);
scanf("%1s",&chinput);
}
return 0;
}哈哈快给分;)
torble 2001-10-04
  • 打赏
  • 举报
回复
这样行不行?

#include <conio.h>

void main() {
int x31=0;
char chinput;

printf("\n");
do {
chinput=getch();
if (chinput!='q')
printf("%c\nx=%d\n",chinput,x31++);
else
printf("%c\n",chinput);
} while(chinput!='q');
}
DIABL0 2001-10-04
  • 打赏
  • 举报
回复
在每个scanf语句后面添一句getchar()
chenfeng3000 2001-10-04
  • 打赏
  • 举报
回复
program oue(input,output);
var chinput :char;
begin
read(chinput);
while chinput<>'q' do
begin
write('chenfeng3000');
read(chinput);
end

end.
Jiker 就算是Pascal 代码也是有问题啊!刚才c论坛的朋友已经给出了答案 原因是
scanf("%c",&chinput); 在回车我给了两个字符,所以循环当然作了两次,包括哪个回车
符,我想问问 pascal是怎样解决这个空格or回车符占位的问题
水之手 2001-10-04
  • 打赏
  • 举报
回复
C的源码,应该到C论坛去呀,至少应该给出Pascal的代码吧。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧