大家都知道
%s 用来输出一个字符串的
%c 用来输出一个字符的,空格也算是一个字符
自学过程中遇到的一些新手问题
#include<stdio.h>
int main(void)
{
char ch;
while(scanf("%c",&ch), ch != 'q')
{
printf("你好\n");
}
return 0;
}
在while循环里用%c格式字符,会打印两次printf,原来是会吧回车留在了缓存中等会会被while循环执行一次。
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char ch;
while(scanf("%c",&ch), ch != 'q')
{
if(isspace(ch))
//ctype.h头文件里的函数 如果该函数的参数是空白字符,则返回真
printf("你好\n");
}
return 0;
}
利用ctype.h头文件的函数可以解决打印两次printf的问题,但是这样会比较麻烦。
假如你不记得这个头文件,可以用另外一个方法就是把scanf里的%c格式字符换成%s字符,这样空格就会在字符串里,包括换行,这样更简单。代码如下
#include<stdio.h>
int main(void)
{
char ch;
while(scanf("%s",&ch), ch != 'q')
{
printf("你好!\n");
}
return 0;
}
虽然输出结果是一样的,但是比用ctype.h头文件里的函数更容易。
第一次写博客,通过写博客来加深自己的理解。
问题很low,对你没有帮助就不好意思了。
文笔不是很好请见谅。
目前在看C Primer Plus(第六版)。