一. getchar 和 putchar 函数1.getchar()getchar 从单词的直译来看就是 给我一个字符事实也正因如此这是一个读取字符的函数但他的原型是 int getchar(void) 如果输入的是字符会返回他的ASCII码值我们存的时候要用 int 类型在需要输出字符的时候再强制转换这是为了兼容性考虑他来自c语言所以要想在c使用需要包含对应的头文件: cstdio#include iostream #include cstdio using namespace std; int main() { int ch; ch getchar(); cout ch endl; cout (char)ch endl; return 0; }getchar 只要是字符就都会读取包括空格2.putchar()putchar() 就是将字符打印到屏幕上一般和getchar搭配使用#include iostream #include cstdio using namespace std; int main() { int ch; ch getchar(); putchar(ch); return 0; }二.printf 和 scanf1.printfprintf 的意思是把参数打印到屏幕上和 c 的 cout 很像其中 print 是打印的意思后面的 f 是表示 format (格式化) 表示他可以定制输出文本的格式他来自 c 语言所以要加上头文件cstdio#include cstdio int main() { printf(hello world); return 0; }printf 如果想换行需要在文本的后面加上 \n而 c 则可以用 endl 和 /n1.2 占位符在 printf 中可以使用占位符占位符是值这个地方可以用其他的值来代替#include cstdio int main() { printf(我有%d个苹果, 2); return 0; }我有%d个苹果%d 就是占位符占位符的前面一律都是百分号%百分号的后面根据不同的字母表示不同功能的占位符比如这里的 %d 就表示这里的值必须是一个整数在文本逗号的后面的数字表示这里要替换的值在文本里占位符可以多次使用#include cstdio int main() { printf(我有%d个苹果和%d个梨,2,3); return 0; }这里要注意的是文本逗号后要替换的数会与前面的占位符保持一致按照顺序一个对应一个占位符有很多这里举例常用的几个%d -- 整数%lld -- long long int 整数%f -- 小数包含 float 和 double 两种%Lf -- long double 小数%c -- 字符%s -- 字符串1.3 格式化输出前面提到 printf 的 f 代表可以格式化输出可以限定占位符中的最小宽度意思是最小要输出到多少宽度如果不够就会用空格来补#include cstdio int main() { printf(%6d,1234); return 0; }可以看到前面空了两格并且他是向左对齐的如果想向右对齐呢只需要加上个 - 就行了#include cstdio int main() { printf(%-6d,1234); return 0; }如果是对于小数那么就是对包括小数在内的所有数字进行最小宽度的限定比如#include cstdio int main() { printf(%10f,123.45); return 0; }可以看到对于小数而言补齐的方法是在小数位上面增加 0 而不会左右对齐在表示小数的占位符中我们还可以进行限定小数位的操作只需要在 % 后加上 . 你想要限定多少小数位例如#include cstdio int main() { printf(%.2f,1.2345); return 0; }还可以把限定最小宽度和限定小数位来结合使用#include cstdio int main() { printf(%7.2f,1.2345); //最小宽度是7位小数点保留两位 return 0; }除此之外最小宽度和小数位数还能用 * 星号来代替根据上面那个例子#include cstdio int main() { printf(%*.*f,7,2,1.2345); return 0; }按顺序下来通过传参 7 和 2跟 7.2f 的用法一样2.scanfscanf 是输入语句和 c 中的 cin 一样来自 c 语言要包含cstdio#include cstdio int main() { int i;//可不初始化 scanf(%d,i); printf(%d,i); return 0; }使用 scanf 的使用要取地址必须使用 来给对应的变量取地址可以多次读取变量#include cstdio int main() { int a, b, c, d; scanf(%d%d%d%d,a, b, c, d); printf(%d %d %d %d,a, b, c, d); return 0; }scanf 中常用的占位符和 printf 类似%d -- 整数%lld -- long long int 整数%f -- float 类型小数%lf -- double 类型小数%Lf -- long double 小数%c -- 字符%s -- 字符串但要注意的是在 printf 中 %f 是包含 float 类型和 double 类型的但是 scanf 中还区分了 float 类型和 double 类型使用 %c 字符占位符的时候要记得空格也是字符是会读取到的如果不想让scanf读取到字符就在字符占位符的前面加上一共空格 scanf( %c,a); 这样不管有多少个空格就都会跳过