1、gets()和puts()函数
首先gets()函数读取整行输入,直到遇到换行符,然后丢弃换行符,储存其余字符,并在这些字符串的末尾添加一个空字符使之成为一个字符串,而puts()函数用来显示字符串,并在末尾添加换行符。但是gets()函数并不安全,它无法检查输入的字符串的长度,当输入的字符串过长的时候,会导致缓冲区溢出,
char a[101],b[101];
gets(a);gets(b);//读空格,换行结束
puts(a);puts(b);//输出结尾自动换行
2、scanf()函数比较简单,当使用%s参数的时候,它会在遇到第一个空白字符的时候结束输入,如果指定了字段宽度,它会在遇到空白字符的时候结束输入或者在读取到相应的字符数目的时候结束输入。
*整形变量和字符型变量是否可在任何情况下互相替代?
----不可以
解释:(摘自百度知道)
char的范围是有符号-128 ~ 127无符号0 ~ 255
int的范围是-32768 ~ 32767
所以只有当你表示的数据的值在它们的公共范围之内是可以替换的,如果不在公共范围之内就不可以替换!
3、getchart(),putchar()
char c1=97,c2=98;//或 int c1=97,c2=98;---结果相同
//c1=getchar();c2=getchar();//读入单个字符包括空格和换行
printf("%d %d\n",c1,c2);//ASCALL码 97 98
printf("%c %c\n",c1,c2);//字符
putchar(c1);putchar('\n');putchar(c2);putchar('\n');//输出单个字符
97 98
a b
a
b
4、printf输出格式
%c 一个字符(char)
%d 有符号十进制整数(int)(%ld、%Ld:长整型数据(long),%hd:输出短整形。)
%md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出
%f 单精度浮点数(默认float)、十进制记数法(%.nf 这里n表示精确到小数位后n位.十进制计数)
%f:不指定宽度,整数部分全部输出并输出6位小数。
%m.nf:输出共占m列,其中有n位小数,若数值宽度小于m左端补空格。有四舍五入
%-m.nf:输出共占m列,其中有n位小数,若数值宽度小于m右端补空格。
%o 无符号八进制整数
%x 使用十六进制数字0xf的无符号十六进制整数
%X 使用十六进制数字0xf的无符号十六进制整数
%% 打印一个百分号
*(%d有符号)
float a=3.14115926525;
float b=1.29;
printf("%2lf\n",a);//若大于m,则按实际位数输出
printf("%-10.1f六个空格\n",b);//包括.在内共10位,小数点后留1位(会四舍五入)
/*输出
3.141159
1.3 六个空格
*/