printf,scanf,getchar

转载 2016年06月01日 23:23:38

赋值运算符
赋值号也是运算符。
用运算符连接起来的式子称为表达式,表达式就有值。
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

C语言顺序程序设计详解(scanf,printf,getchar,putchar等函数)

一、C语言语句概述: C语句分为以下五类: :表达式语句->表达式语句由表达式加上分号“;”组成。 :函数调用语句->由函数名、实际参数加上分号“;”组成。 :控制语句-> ...

C语言中的getchar, scanf, putchar, printf学习

输入和输出功能并不是C语言本身的组成部分,他们属于标准库范围,使用输入输出相关函数是必须写:#include 。文件名用尖括号括起来时,预处理器将到特定位置查找而不是在工程中。   常用的标准的输...

STM32 串口 UART 实现 printf scanf

  • 2012年03月11日 13:19
  • 383KB
  • 下载

getchar、scanf以及缓冲区的概念

1、getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了。       getch()和getche()...

scanf和printf指针使用情况

  • 2005年06月15日 15:06
  • 23B
  • 下载

深入了解scanf()/getchar()和gets()等函数

http://blog.163.com/yui_program/blog/static/184155415201141291934750/ -----------------------------...
  • bytxl
  • bytxl
  • 2013年12月05日 17:02
  • 490
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:printf,scanf,getchar
举报原因:
原因补充:

(最多只允许输入30个字)