1.有关%s格式字符串
⑴%s,如printf("%s","CHINA")
⑵%ms,输出的字符串占m列,字符串长度小于m,左边补空格,如果超出则全部输出.
⑶%-ms,串小于m,则在m列范围内字符串左靠,右补空格.
⑷%m.ns,输出占m列,但只取字符串左端n个字符.这n个字符输出在m列的右边,然后左边补空格.
⑸%-m.ns,和上面的放下,就是n个字符输出在m列的左侧,右边补空格.n>m,那么m自动取n的值,既保证n个字符正常输出.
2.有关数组存储
对于自动存储类型(就是我们常用的,auto自动省略)的数组,若初值列表中给出的数据个数少于元素个数,则只能给数组前面的元素赋值,后面元素的值不确定。
对于静态存储类型的数组(如static int),系统自动为后面的赋0或NULL。
3.有关字符输入函数getchar()
1.getchar 由宏实现:#define getchar() getc(stdin)。
2.getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.
3.getchar函数的功能是从键盘上输入一个字符。其一般形式为: getchar(); 通常把输入的字符赋予一个字符变量,构成赋值语句,如:
char c;
c=getchar();
#include<stdio.h>
void main()
{
char c;
printf("input a character\n");
c=getchar();
putchar(c);
}
4. 使用getchar函数还应注意几个问题:
getchar函数只能接受单个字符,输入数字也按字符处理。输入多于一个字符时,只 接收第一个字符。
使用本函数前必须包含文件“stdio.h”。
5. 与getch区别:
(1)getchar();从键盘读取一个字符并输出,该函数的返回值是输入第一个字符的ASCII码;若用户输入的是一连串字符,函数直到用户输入回车时结束,输入的字符连同回车一起存入键盘缓冲区。若程序中有后继的getchar();函数,则直接从缓冲区逐个读取已输入的字符并输出,直到缓冲区为空时才重新读取用户的键盘输入。
(2)getch();接受一个任意键的输入,不用按回车就返回。该函数的返回值是所输入字符的ASCII码,且该函数的输入不会自动显示在屏幕上,需要putchar();函数输出显示。getch();函数常用于中途暂停程序方便调试和查看。
(3)getchar();和getch();的另一个区别就是所需要包含的头文件不同。
getchar();用#include<stdio.h>
getch(); 用#include<conio.h>