c 语言的标准输入输出,scanf,printf

来源:互联网 发布:阿里云到底是干嘛的 编辑:程序博客网 时间:2024/06/06 17:09

printf scanf  里面的f就是format的意思就是格式化,格式化输入,格式化输出


0:printf 函数的定义(java 的输出是System.out.println();)

int printf(char *format,arg1,arg2,...); ...代表是可变参数
格式化字符串包含两部分内容:普通字符和转换说明,普通字符原样输出,转化字符以百分比开始,后面是若干个转换字符,例如
如果想要占有5个位置,我就是胖,我要5个人的位置,咋滴?
int i=100;printf("0000%5d",i);

转化说明的通用的格式是:
%m.pX 或者是%-m.pX, 
m 制定了最小字段宽度,
p 代表精度
X代表进行那种转换,例如数字转换的d,e,f,g等,
负号代表左对齐


1:printf 的类型
类型:
格式字符 意义
d以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀0)
x,X 以十六进制形式输出无符号整数(不输出前缀0x)
u 以十进制形式输出无符号整数
f 以小数形式输出单,双精度实数
e,E 以指数形式输出单,双精度实数
g,G 以%f或%e中较短的输出宽度输出单,双精度实数
c 输出单个字符
s 输出字符串


标志:+,-,#,空格
+ 输出符号(正好或者负号)
- 结果是左对齐
空格 输出值为正是冠以空格,为符号时候冠以负号
# 对c,s,d,u 类无影响,对o类,在输出的时候前缀0,对x类,在输出的时候加前缀0x
对e,f,g,只有当结果有小数时才给出小数点
#include <stdio.h>int main(void){int count =printf("hello world");//这里一共多少个字符printf("count=%d",count);//这里会输出count=11就是有11个字符//%d //格式化输出 %d,%s 都叫做占位符,教室占位置,此处有人,%这里相当于特定的人,例如是%d就是领导,%s 就是嘉宾int age =20;char *name ="tom";printf("age=%d,name=%s\n",age,name);//这里的参数有两个参数//格式化字符串包含两部分内容:普通字符和转换说明,普通字符原样输出,转化字符以百分比开始,后面是若干个转换字符,例如//如果想要占有5个位置,我就是胖,我要5个人的位置,咋滴?int i=100;printf("+++++%5d-----\n",i);//%5d 5代表字符宽度//肯德基char *nameChicken = "香辣鸡腿堡";//%s 标识stringint num = 2;//%d 标识decimadouble price = 15.5;//%f 标识->float//\t 是tab的意思printf("名称:%s\t 数量:%d\t 金额:%f\t 合计:%f ",nameChicken,num,price,num*price);//负号代表左对齐printf("+++++%-5d-----\n",i);float f =123.123;//点后面标识精确到多少位//输出+++++123.12-----printf("+++++%.2f-----",f);return 0;}

#include <stdio.h>int main(void){int age = 20;char *name = "tom";char c ='A';float f = 3.14;double d =3.1415926;printf("age=%d\n",age);printf("name=%s\n",name);printf("c=%c\n",c);printf("f=%f\n",f);printf("d=%f\n",d);}





2:scanf
int scanf(char *format,arg1,arg2,arg3 ...);

除了format 参数外,其他参数都必须是指针类型,就是要加上&的符号

#include <stdio.h>int main(void){int i;char c;char s[20];float f;double d;/**在C语言中:  1)用scanf()函数输入double类型的变量时,转换说明中的转换字符(占位符)只能用lf,即%lf,写成%f无法正确输入double型数据;  2)用printf()函数输出double类型的变量时,转换说明中的转换字符(占位符)可用%lf或%f,皆能正确输出,且输出结果一致。*/printf("Please input a double number\n");scanf("%lf",&d);//千万别忘了&printf("输出 double 类型%f",d);//注意这里将字符串放在最后printf("请输入一个整形,一个字符型,一个浮点型,一个double 类型和一个字符串类型,中间以空格分割\n");scanf("%d %c %f %lf %s",&i,&c,&f,&d,&s);printf("输出 整形 %d\n 字符 %c\n 浮点类型%f\n double 类型%f\n 字符串:%s\n",i,c,f,d,s);//接收数字输入int age;printf("Pleas input your age:");scanf("%d",&age);printf("You can still alive %d \n",100-age);//接收字符串输入,字符数组就可以称为字符串char name[20];printf("Please input your name");scanf("%s",name);printf("你的名字%s 得分100\n",name);//同时接收字符串和数字输入,注意scanf 里面如果是以逗号分割的那么输入的时候也要以逗号分割printf("Please input your name and age: format (age,name)");//注意,这里最好把age 放在前面,然后字符串放在后面,因为如果把字符串放在前面,会出现将age的输入也放到了字符串里面了scanf("%d,%s",&age,name);//注意这里的name 是米有用&来修饰的,printf("Your name is %s,your age is %d",name,age);}


















































0 0
原创粉丝点击