%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号
putchar()是输出一个字符的意思,经常用来输出一些特殊字符。
比如你要输出一个空格:putchar('\n');
比如你要输出一条线:for(i=0;i<30;i++) putchar('-');
和printf有作用相同的地方。相对的getchar()获得一个字符。
puts();和gets();
前者是输出,后者是(从键盘)获得。
但是而这都是对于字符数组或者指向字符数组的指针进行操作的。
比如你在char str[20];里面输入了一个字符串(可以用gets(str)函数实现)。然后通过puts(str);语句就可以进行输出了。这里要注意,这两个函数的括号里面的参数是字符串数组的首地址也就是字符数组的名字或者是已经被赋值指向字符数组的指针的名字。
这两个与scanf("%s",str);以及for和%c的组合相比,优点是书写简便,可以接受空格(比如你输入how are you?的时候,有空格就是能用gets()进行输入了)。scanf是看到空格和回车都认为是结束,而gets可以接受空格,只把回车当做结束。字符串输入输出的时候这两个函数用的频率还是蛮高的