写代码,怎么可能少了输入输出,下面来说说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
原文:https://www.cnblogs.com/gitpy123/p/13221908.html