c语言格式化输入
① c语言中的格式化输出函数和格式化输入函数分别是什么
准确的说,应该是输出语句,输入语句,输出语句是“printf(输出格式)”,输入语句是"scanf(输入格式)"。
② c语言格式输入输出函数
一:格式输出函数printf()
1、调用形式一般为:printf("格式化控制字符串",输出表列);
2、格式化控制字符串用于指定输出格式,它有三种形式:
1、格式说明符:规定了相应输出表列内容的输出格式,以%打头,如%d、%o等
2、转义字符:用来输出转义字符所代表的控制代码或者特殊字符,比如常用的‘\n'、‘\t'
3、普通字符:需要原样输出的字符。
3、输出表列为若干需要输出的数据项,它与格式说明符在数量和类型上一一对应;
4、格式字符m指定输出数据所占宽度,n对实数表示输出n位小数,对字符串表示截取的字符个数,+表示右对齐,通常省略。
—表示左对齐,l用于长整型数据,可加在d、o、x、u前,更多格式说明符及其组合形式如下所示:
格式字符
数据对象
输出形式
数据输出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十进制整数
1、无m按实际位数输出
2、有m输出m位;超过m位,按实际位数输出,不足补空格
3、有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
%(+)-mo
八进制整数
%(+)-mx
十六进制整数
%(+)-mu
无符号整数
%(+)-mld
long
unsigned
long
十进制整数
%(+)-mlo
八进制整数
%(+)-mlx
十六进制整数
%(+)-mlu
无符号整数
%(+)-m.nf
float
double
十进制小数
%(+)-m.ne
十进制指数
%(+)-g
自动选用%f和%e中较短的输出宽度输出单、双精度浮点数
%(+)-mc
char
int
short
单个字符
1、无m输出单个字符
2、有m输出m位,补空格
3、有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
%(+)-m.ns
字符串
一串字符
1.无m、n按实际字符串输出全部字符
2、有m、n仅输出前n个字符,补空格
3.有+(默认为+)右对齐(左补空格)
4、有-左对齐(右补空格)
二:格式输入函数scanf()
1、
调用格式一般为:scanf("格式化控制字符串",地址表列);
2、格式化控制字符串和printf()函数含义相似,所不同的是它是对输入格式进行控制;
3、地址表列是有若干等待输入的数据所对应的内存单元地址组成,由逗号隔开,一般形式为&a,a为变量;
4、地址表列在数量和类型上和格式化控制字符串中的格式说明符一一对应;
5、格式字符h表示输入短型数据,可用在d、o、x前面,m指定输入数据所占宽度,
*表示对应的数据项读入后不赋给相应的变量,更多格式说明符及其组合如下
格式字符
数据对象
输入形式
数据输入方法
%md
int
short
unsigned
int
unsigned
short
十进制整数
1、无m按实际位数输入
2、有m输入m位,不足m则跟回车键
%mo
八进制整数
%mx
十六进制整数
%mld
long
unsigned
long
十进制整数
%mlo
八进制整数
%mlx
十六进制整数
%mlf
float
double
十进制整数
%mle
%mc
char
单个字符
1、无m取单个字符
2、有m输入m位,仅取第一个字符
%ms
字符串
一串字符
1、无m取回车或空格前若干字符
2、有m仅取前m字符
③ c语言中如何格式化输入或输出数据
%d表示输入或输出十进制有符号数;%f表示输入或输出浮点数(float,四字节表示);在C语言中输出不同数据时需要用到不同的格式字符,%d是用来输出十进制整型数据的实际长度输出,%f是以小数形式输出单、双精度度数。以下是详细介绍:
1、%d表示输入或输出十进制有符号数;
2、%f表示输入或输出浮点数(float,四字节表示);
3、另%lf表述输入或输出双精度浮点数(double 8字节表示);
4、在输出不同数据时要用不同的的格式字符,比如说这个%d是用来输出十进制整型数据的实际长度输出;%f是以小数形式输出单、双精度度数,隐含输出6位小数;还有很多,如%s(输出字符串)
④ 在C语言中标准输入输出语句应该如何编写操作
Turbo C 2.0标准库提供了两个控制台格式化输入、输出函数 scanf();和printf();这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。scanf()函数用来从标准输入设备(键盘)上读数据,printf()函数用来向标准输出设备(屏幕)写数据。下面详细介绍这两个函数的用法。
1.标准输入语句
scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。其调用格式为:scanf(<格式化字符串>,<地址表>);
格式化字符串包括以下三类不同的字符;
(1).空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
(2).非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
(3).格式化说明符:以%开始,后跟一个或几个规定字符,用来确定输出内容格式。
⑤ C语言中的格式化输入问题
scanf中的输入格式是%d%d%d,即三个输入间用空白符分隔
而题目中的输入格式是25,13,10<CR>,中间用逗号分隔,结果导致只有x被正常赋值,yz的值都是未知的垃圾值
结果自然史不确定值
⑥ C语言中%f是指什么%f指哪些
%f用于格式化输入输出函数,用来格式化输入输出float(单精度浮点数)类型数据。
1、格式化输入函数,包括scanf, fscanf, sscanf, vscanf, vsscanf,vfscanf等。当%f用于格式化输入函数时,后续对应位置应传入一个float类型变量的地址。
不同的格式化输入函数,只是源不同,功能都是从源中,按照格式读取数据存到变量中,当指定%f格式时,会尝试读取一个浮点数,存到对应参数地址中。
2、格式化输出函数,包括printf, fprintf, sprintf, vprintf, vsprintf,vfprintf等。当%f用于格式化输出函数时,后续对应位置应传入一个float类型变量的值。
区分函数不同, 会将对应的float变量值,格式化输出到对应的目标上。
默认%f会输出6位小数。
3、代码举例:
#include<stdio.h>
intmain()
{
floata;//定义变量。
scanf("%f",&a);//读入数据。
printf("getfloat:%f ",a);//输出读入的数据。
return0;
}
运行示例:
输入
1.23
输出
1.230000
4、注意事项:
在使用%f输入时,必须传入float类型的地址,否则会出错。
而用%f输出时,可以传入float或者double的值。 如果传入为double,函数会自动强制转换为float类型输出。
⑦ C语言中的格式化输出函数和格式化输入函数分别是什么
格式化输出函数指的是printf(),用来在屏幕上打印输出字符串和变量等内容
格式化输入函数指的是scanf(),其功能是实现和用户的交互,由用户输入相应的值然后给变量
下面是个判断一个数有几位的一段代码,希望能帮助到你
⑧ C 字符串和格式化输入与输出
1.前导程序
2.关于字符串
(1)字符串是一个或多个字符的序列。如"I am a student!"。
(2)C语言用空字符来标记一个字符串的结束。数组的单元数必须至少比要存储的字符数多1。
(3)字符串和字符。'x'和"x"的区别(后者是一个字符串由'x'和'\0'组成)。
(4)Sizeof()和strlen()函数。
同一个字符串,sizeof()把标志字符串结尾的空字符计算在内,长度比strlen()大1.
strlen()以 字符 为单位给出字符串的长度。sizeof()给出数组的长度(分配的内存单元)。
获取一个类型大大小~获取一个具体量的大小。sizeof(char)和sizeof (name)=sizeof name。
sizeof()和strlen()
3.常量和C预处理器
(1)常量如0.015。float taxrate=0.015。把常量0.015赋值给变量taxrate,但程序可能意外的改变它的值。
(2)两种方法const修饰符和#define预处理命令
const int MONTHS=12;
#define MONTHS +12;(#define TEE 'T')(#define OOPS "Now you have it!")
4.printf()函数
(1)printf():(“控制描述"+变量列表)~(变量使用的是值,无论该值是变量、常量、还是表达式)。
(2)printf()转换说明符:%c--一个字符、%d--有符号十进制整数、%e--浮点数e记数法、%、f--浮点数十进制、%p--指针、%%--打印一个%、%s--字符串...:
请避免不匹配的转换。
(3)printf()标志符:-(左对齐)、+(带符号)、#(...)、0(对所有数字格式,用前导0填充字段宽度)
打印一个字符串的前8个字符,字段宽度为8字符(%8.8s)
打印双引号\"....\"
打印一个字段宽度在参数列表中给定的八进制整数(%*0).
%5d(00006)
指定固定字段宽度(有效防止溢出)
(4)用printf()打印较长的字符串
a.采用多个printf()函数;
b.在一个printf()中采用(\)和回车键
c.采用字符串连接方法("Hello""world")
(5)printf()的函数返回值(返回所打印字符的数目,如果输出有误则返回-1,常用于检查输出错误。向文件中而非屏幕)
5.scanf()函数
(1)scanf()会在遇到第一个空白字符空格、制表符、或者换行符处停止读取。~gets()函数可以用来读取一个字符串。
(2)读取变量类型的值加&,把字符串读进一个字符数组不使用&。
(3)scanf("%d,%d",&n,&m)接受输入 1,2 {scanf("%c",&ch)读取在输入中遇到的第一个字符}
6.关于修饰符*
printf()中在字段宽度部分使用*来代替数字
scanf()中*使函数跳过相应的输出项目(scanf("%*d%*d%d",&n);前两个跳过)
⑨ c语言格式化输入输出和非格式化输入输出的区别
printf()函数是格式化输出函数,
一般用于向标准输出设备按规定格式输出
信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:
printf("<格式化字符串>",
<参量表>);
其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原
样输出; 另一部分是格式化规定字符,
以"%"开始, 后跟一个或几个规定字符,
用来确定输出内容格式。
参量表是需要输出的一系列参数,
其个数必须与格式化字符串所说明的输出
参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想
不到的错误。
非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替, 但
这些函数编译后代码少, 相对占用内存也小, 从而提高了速度,
同时使用也比较
方便。puts()函数用来向标准输出设备(屏幕)写字符串并换行,
其调用格式为:
puts(s);
其中s为字符串变量(字符串数组名或字符串指针)。
puts()函数的作用与语printf("%s\n",
s)相同。
例4:
main()
{
char s[20], *f;
strcpy(s, "Hello! Turbo
C2.0");
f="Thank you";
puts(s);
puts(f);
}
说明:
(1).
puts()函数只能输出字符串, 不能输出数值或进行格式变换。
(2). 可以将字符串直接写入puts()函数中。如:
puts("Hello,
Turbo C2.0");
⑩ C语言格式化输入输出(关于日期)
写下这篇文章,主要是记载自己的学习心得,同时也分享给所有正在学习c语言的小白们。
关于日期的输出呢,看起来是挺简单的,但当题目要求输入比如:2019--10--01或者2019--09--10,正在学习c语言的人(包括我)就会卡在这,如何将1~9的“0”一起输出呢?
其实很简单,这里巧用“0”,既然题目说到0n(n代表1~9月或者日期),那我们肯定要用到“0”呀,那这个“0”该放哪呢,又是个问题。
但不用慌,想想我们之前的输出,就应该知道这个“0”应该这样 printf("%02d",&n);, 而那个2怎么来的呢,就是代表整个宽度为2(因为月份,日期最大占两位数),即%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。
因此,在日期时应该: printf("%d %02d %02d",year,month,day);
下面直接放题:
按 yyyy/mm/dd 形式从键盘输入一个日期,按yyyy--mm--dd 形式输出该日期,其中 yyyy, mm, dd 分别表示年、月、日。
输入:
2019/10/01
输出:
2019--10--01
#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
printf("%d--%02d--%02d",year,month,day);
}
没错这就可以了,这篇呢只是为了巩固做题的思路,以及给所有的小白看的。当然,还需要大佬们的指导。