c语言enter键不输出换行符\n

我输入一串字符然后回车,然后程序就输出了我刚才输出的哪一段字符,并且在前面加入行数1但是当我输入第二行字符时并回车,却没有行数出现了,这说明ch没有接受到\n,导致at_... 我输入一串字符 然后回车,然后程序就输出了我刚才输出的哪一段字符,并且在前面加入行数1
但是当我输入第二行字符时并回车,却没有行数出现了,这说明ch没有接受到\n,导致at_begin==0
当我什么也不输入 直接输入一个回车时 程序也会打印一个回车,相当于是我这个回车往下换行了两行
这是什么情况,为什么ch捕捉不到\n符号呢?我的在vs2013上运行。这是c和指针这本书上的练习 同时也是答案
#include<stdio.h>
int main(){

int ch;
int at_begin=1, line=0;
while ((ch = getchar()) != EOF){
if (at_begin == 1){
at_begin = 0;
line++;
printf("%d ", line);
}
putchar(ch);
if (ch == "\n")
at_begin = 1;

}
return 0;
}
展开
 我来答
enjoy慢慢滴
2015-02-10 · TA获得超过108个赞
知道小有建树答主
回答量:86
采纳率:75%
帮助的人:19.6万
展开全部

int ch;

if (ch == "\n")

这是在判断整形于字符串是否相等吗?

ps:抢时间,不明白的话评论,我再详细说

改正后的程序和效果

风若远去何人留
2015-02-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部
不要用
ch == "\n";
这个是字符串的写法
要比较换行 需要
ch == '\n';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuiiao333
2015-02-10 · TA获得超过799个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:207万
展开全部
#include<stdio.h>
int main(){

int ch;
int at_begin=1, line=0;
while ((ch = getchar()) != EOF){
if (at_begin == 1){
at_begin = 0;
line++;
printf("%d ", line);
}
putchar(ch);
if (ch == "\n") //你这个是拿int和字符串比较,怎么相等??
at_begin = 1;

}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
别随常凉马0u
2015-02-10
知道答主
回答量:20
采纳率:0%
帮助的人:7.6万
展开全部
"\n"和'\n'是不一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式