c语言循环输入中ctrl+z的问题 10

1、为什么要输入两次ctrl+z才能输出?为什么还多输出一个空格?代码如下:#include<stdio.h>chara[100];intmain(){inty=0,i=... 1、为什么要输入两次ctrl+z才能输出?为什么还多输出一个空格?
代码如下:
#include<stdio.h>
char a[100];
int main()
{

int y=0,i=0;
char c;
while(scanf("%c",&c)==1)
{
a[i++]=c;
}
if(a[0]=='-')
{
printf("-");
y=1;
}
for(;i>=0;i--)
{
if(a[i]!='0')
break;
}
for(;i>=y;i--)
{
printf("%c",a[i]);
}
return 0;
}

2、如果换成
int c;
while(c=(getchar()!=EOF)
为什么输出里面多一个空格?
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
flyfit
2015-09-07 · TA获得超过458个赞
知道小有建树答主
回答量:595
采纳率:66%
帮助的人:297万
展开全部
ctrl+z系统给出中断信号,程序正在运行

while((c=getchar())!=EOF)
追问

问题里面输错了。。换成这个以后还是多一个换行怎么办?

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式