关闭

printf,scanf,getchar

57人阅读 评论(0) 收藏 举报
分类:

赋值运算符
赋值号也是运算符。
用运算符连接起来的式子称为表达式,表达式就有值。
a=4 是表达式,其值为4;
a=b=6 是表达式,利用运算符= 的结合性进行分析。
= 结合性 自右至左:“右边粘性大”。

1. printf函数
通式: printf(格式字符串,以逗号分开的零到多个表达式)

#include<stdio.h>
main()
{
double w1;  float x1;  int  j , k;  char ch1,ch2, s[4];  
w1=7.6/3;  x1=8/3.0;  j=256; k=0xffffff00;
ch1=’@’;ch2=64; s[0]=’b’;s[1]=’o’;s[2]=’y’;s[3]=’\0’;
printf(“g is %f. there are %d months in a year\n”, 9.8, 12);//2 个常量
//单个常量也是表达式
printf(“The number of seasons =(是)%d\n”,12/3); //一个表达式
printf(“boy\n”);   //零个表达式
printf(“DaBuLiuY1:%lf ; 埃克斯一是%f\n”,w1,x1); //2 个变量
//单个变量也是表达式

printf(“j=%d  k is %d  , j plus k =%d\n”, j,k,j+k );//3个表达式
printf(“j=%x  k is %x  , j plus k =%x\n”, j,k,j+k );//十六进制
printf(“The Weight of the %s is %4.1lf kg\n”,s,w1); //%s 字符串
return 0;
}

g is 9.800000. there are 12 months in a year
The number of seasons =(是)4
boy
DaBuLiuY1:2.533333 ; 埃克斯一是2.666667
j=256 k is -256 , j plus k =0
j=100 k is ffffff00 , j plus k =0
The Weight of the boy is 2.5 kg
Press any key to continue
转换控制字符串(格式控制字符串、格式字符串)
由以下两部分组成:
①格式说明(format specification)
由%和类型转换字符(教材中叫格式字符)(type character)以及在两者之间的可选用的修饰符组成,如上面的。
%d %f %4.1lf %lf
type character:
d signed decimal (有符号整数十进制)
x unsigned hex decimal (无符号十六进制)
f float (单精度浮点数)
s string (字符串)
c character (字符)
②普通字符:转换控制字符串中除了格式说明(们)的之外的所有字符输出时原样输出。
转换控制字符串中的格式说明(们)与其后的表达式(们)按顺序一一对应。printf将这些表达式的值按照其对应格式说明转换为字符序列,并用该字符序列替换转换控制字符串中对应的格式说明,
printf 将替换后的字符串画在显示器上。
2. scanf 函数
通式: scanf(格式字符串,以逗号分开的一到多个地址)
只考虑格式字符串中仅含有格式说明的情况,而且只考虑简单格式说明(%类型转换字符)的情况。

int main()
{
int nBianHao, nGeshu;
double dPrice,dTotal=0.0;
Loop: scanf(“%d”,&nBianHao);
if(nBianHao==-1) goto Done;¬
scanf(“%d%lf”, &nGeshu,&dPrice);
dTotal= dTotal+ nGeshu*dPrice;
goto Loop;
Done: printf(“总价:%lf\n”, dTotal);
return 0;
}
输入:
1 9 3.2 2 8 7.8 3
6 123.5
4 7 5.6
5 200 1.12
-1
结果:总价:1095.400000
讲解:a.将键盘输入看成字符序列(包括空格、换行、水平制表符,三者统称为空白符 white space character);b.以空白符作为分割符,将输入序列分成若干区域,组成区域序列;c.想象区域序列中有一个当前读取位置,当前的scanf与之对应;d.用该scanf的转换控制字符串中的转换说明顺次对应输入区域,将这些区域(即字符序列)转成(按照转换说明的要求) 相应类型的数据,存入相应地址的内存中。

putchar getchar 是c的标准库函数
putchar(整数),将该整数视为ASCII码,将对应的字符(单个字符)画在显示器上。
putchar(52); putchar(0x52);putchar(‘a’);putchar(‘\07’);
getchar(), 将当前按键字符的ASCII码,作为返回值(函数值)。
char ch; int k;
ch=getchar(); k=getchar();
putchar: 可将printf看成用其构成(举例)。

#include<stdio.h>
main()
{
int a;
char c;
a=0x100;
c=(a/100)%10+’0’; putchar(c);
c=(a/10)%10+’0’; putchar(c);
c=(a/1)%10+’0’; putchar(c);
return 0;
}

运行结果:256

getchar: 可将scanf看成用其构成(举例)。

#include<stdio.h>
main()
{
int a,k;
char c;
a=0;
c=getchar();
a=a*10+c-‘0’;
c= getchar();
a=a*10+c-‘0’;
c= getchar();
a=a*10+c-‘0’;   
k=a+8;
printf(“%d\n”,k);
return 0;
}

键入:123回车
显示:131

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3233次
    • 积分:216
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:11篇
    • 译文:0篇
    • 评论:0条
    文章分类