## 关于字符数据的输出,我总结了有两种方式:
## 1)与putchar函数有关;putchar();
## 2)与printf函数有关,printf("%c",getchar());
## 1)putcahr函数
实例《一》
#include
int main()
{
char a, b, c, d;
a= 'h';
b = 'e';
c = 'l';
d = 'o';
putchar(a);
putchar(b);
putchar(c);
putchar(c);
putchar(d);
system("pause");
return 0;
}
#include
int main()
{
int a = 66, b = 79, c = 89;
putchar(a);
putchar(b);
putchar(c);
putchar('\n');
system("pause");
return 0;
}
总结putchar函数:
1)putchar函数是输出字符的函数,它输出的总是字符而不输出整数;
2)putchar©函数中的可以是:字符常量,整型常量(其值在ASCII码的字符范围内);
3)putchar函数每次只能输出一个字符;
4)注意putchar(’\n’)语句{注意使用单引号引起来,而不是双引号,本质是转义字符}的作用与printf("\n")语句作用相同,换行;
## 关于字符数据的输入getchar()
实例《一》
键盘输入大写字母,转成小写字母输出:
#include
int main()
{
char c1, c2;
c1 = getchar();
c2 = c1 + 32;
putchar(c2);
putchar('\n');
system("pause");
return 0;
}
这段代码看似简单,实际上也蕴含着很多细节:
1)如果输入的是小写字母的话,输出窗口是没有任何反应的:
2)如果输入的是数字的话,输出的有可能是小写字母:
3)如果我们输入大写字母的话,输出的就是与之对应的大写字母
重要结论:大小写字母的ASCII码之间相差为32;具体而言,小写字母比大写字母大32;
使用putchar(getchar())语句
#include
int main()
{
putchar(getchar());
putchar(getchar());
putchar(getchar());
putchar('\n');
system("pause");
return 0;
}
一般格式printf(”格式控制“,输出表列)
格式声明即格式控制
是由双引号引起来的字符串,常见的是格式字符串,即以%为开头的字符串,%后面根由各种格式字符,以说明数据类型,格式,长度,小数位数
要注意
printf("%d\n%d\n",2,3);两个d之间有换行
printf("%d %d", 2, 3);两个d之间有空格
printf("%d%d", 2, 3);两个d之间没有空格,也没有换行
printf("%d,%d", 2, 3);
总结:空格,逗号,换行我们都是提倡的,最提倡空格和逗号,两个d连着写是我们最抵触的
1)%d,用于输出一个有符号的十进制整数;
同样可以在格式声明中指明输出数据的域宽,
(例如用%5d,指定数据输出占5位,输出的数据显示在此5位的右侧)
#include
int main()
{
printf("%5d\n%5d\n", 12, -345);
putchar('\n');
system("pause");
return 0;
}
2)%c用于输出一个字符
###也可以指定域宽
char ch='a';
printf("%5c",ch);
输出的a前面有4个空格;
###ASCII码转字符也是可以
一个整数,如果在0~127范围内,可以用%c使之以字符形式输出,在输出时,系统会将该整数作为ASCII码转换成相应的字符,
short a = 121;
printf("%c", a);
3)%s用于输出一个字符串
printf("%s", "CHINA");(输出的结果不包括双引号);
4)%f用于输出实数(包括单,双精度,长双精度),以小数形式输出
###基本型,用%f表示,不指定输出数据的长度,系统会根据数据的实际情况来决定数据所占的列数,系统处理的一般方法是实数中的整数部分全部输出,小数部分输出6位
###指定数据宽度和小数位数,用%m.nf来表示,
例:%7.2f
指定了输出的数据占7位,其中包括两位小数,对后一位采取四舍五入的方法来处理;整数部分不够位就用0左端补齐,小数部分不够位就用0右端补齐。
5)e格式符,指定以指数的形式输出实数,类似于科学计数法。
如果不指定域宽和位数,不同的编译器会有自己默认的系统处理方式,
printf("%e",123.456);
小数点前必须要有且只有一位非0数字,小数的位数是六位,指数部分占4列(e占1列,指数符号占一列,指数占两列)数值按标准化指数的形式输出
scanf函数的一般形式:
scanf(格式控制,地址表列)(其中格式控制是与printf函数类似的);
使用scanf函数常见的问题:
1)scanf函数中格式控制后面应该是变量地址,而不是变量名
scanf("%f%f%f",a,b,c)是错误的,改为&a,&b,&c;
2)如果在格式控制字符串中除了格式声明之外还有其他字符,则在输入数据时应在对应位置应输入与这些字符相同的字符。
scanf_s("a=%f,b=%f,c=%f",&a,&b,&c);
如果不这样输入的话,看似没有影响,其实影响之后的相关参量,因为你不这样输入的话,系统是不认的,输入的形式必须完全对应系统才能认;
3)scanf要求给出变量的地址,所以‘&’必不可少;