printf与scanf简单使用
写代码,怎么可能少了输入输出,下面来说说printf和scanf的简单使用
#include<stdio.h>
int main()
{
printf(格式字符串,待打印项1,待打印项2); //printf基本格式
return 0;
}
下面我们来看一个例子,很简单就是打印一个整形变量
#include<stdio.h>
int main()
{
int i = 0;
printf("%d", i);
return 0;
}
一般我们需要设置最小宽度和对齐方式,这个经常忘记怎么使用,所以记录一下
#include<stdio.h>
int main()
{
int i = 0;
printf("%-3d", i); //'-'表示左对齐,没有的话默认右对齐,3表示最小的宽度是占3个位
return 0;
}
其实,最想说的还是scanf,因为经常使用%c的时候,读不到输入的字符,比如下面这样
#include<stdio.h>
int main()
{
int i;
char ch;
scnaf("%d", &i);
scanf("%c", &ch); //这个我们就会读到一个空白字符,而不是输入的字符
return 0;
}
这是什么原因呢,其实是scanf函数每次读取一个字符,跳过所有的空白字符,直到遇到非空白字符才读取,同时scanf也是通过空白字符来分段的,用上面的程序来说,这个程序先读取一个整数,当读到空白字符的时候,就停止了,然后将那个空白字符返回,所以下一个读取从这个空白字符开始读的,而%c就很巧了,刚好需要读一个字符,所以%c就把那个空白字符读取存到ch中了,所以你输入的字符就没有读到ch中
那么如何解决呢,下面是解决方法
#include<stdio.h>
int main()
{
int i;
char ch;
scnaf("%d", &i);
scanf(" %c", &ch); //可以在%c前面加一个空格,格式字符串中的空格意味这跳过下一项前面的所以空白字符(当然也包括没有空格的特殊情况)
return 0;
}
当然也可在前面在加一个scanf来读空格,或者getchar()来处理也是可以的
好了,我们下回见,peace

浙公网安备 33010602011771号