我输入一串字符 然后回车,然后程序就输出了我刚才输出的哪一段字符,并且在前面加入行数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;
}
int ch;
if (ch == "
")
这是在判断整形于字符串是否相等吗?
ps:抢时间,空启不明白的话评论,我再详细说链岩
改正后的程序斗唤如和效果
不要用灶弊
ch == "盯冲\n";
这个是字符串的写法
要比较换行 需要
ch == '凯辩歼\n';
#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;
}
"\n"和'\n'是不一样的。