请教在C中什么时候要先考虑滤去换行符
如下面这个简单的程序,
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
int main(void)
{
char name;
char flower;
name = getchar();
flower = getchar();
putchar(name);
putchar('\n');
putchar(flower);
putchar('\n');
return 0;
}
当在黑窗口中任意输入两个字符a与了,中间不要空格,输出结果为:
ab
a
b
Press any key to continue
当输入a加空格b后,输出结果为:
a b
a
Press any key to continue
当把程序改成加一个滤去换行符
char name;
char flower;
name = getchar();
while(getchar() != '\n')
{
continue;
}
flower = getchar();
putchar(name);
putchar('\n');
putchar(flower);
putchar('\n');
这样就可以先输入一个a,然后敲回车,然后输入一个b,然后回车,得出结果:
a
b
a
b
Press any key to continue
我在做字符串练习题时也经常会碰到要滤去换行符的情况,但我在一开始做习题时不知道在哪里要滤去换行符,往往等编译出的结果不如意时才会慢慢觉得是不是要滤去换行符,然后试成功了。但是我的问题是,有什么办法可以一开始就知道在哪里要滤去换行符?
[解决办法]
getchar 获取单个字符,如果你需要输入多个字符 中间有换行或者空格隔着的话,都需要过滤掉 的
[解决办法]
1,流是有缓冲的
2,字符串,数字,指针等以空格(' ', '\t', '\n'等)分隔。换句话说从流中读到的字符串不会包含空格
3.getchar()可以读到任意字符(char)和EOF
[解决办法]
根据自己的需要定吧
[解决办法]
空格也是一个字符,所以就是这样的结果,希望可以帮到你!