C语言程序设计格式化输出,C语言程序设计 学习笔记 格式化输入输出

格式化输入:

scanf:

%[flag]type

格式化输出:

printf:

%[flags][width][.prec][hIL]type

对于flags,表示的是标志,可以使用的内容如下:

3dc94253ae4f33aff515475a281e35db.png

举例事例:

int main(){

printf("%9d\n",123);

printf("%-9d\n",123);

return 0;

}

输出结果是:

123

123

第一行比第二行左边多了6个空格,事实上就是将我要输出的东西长度固定为9,并且向右靠拢

(空格+字符长度(<=9的情况下)=9)

+的意思就显示其正负号(如果本身数字是负数,如

printf("%+d\n",-123));

那么最终输出还是-123,和没有+号一样

如果是

printf("%09d\n",123);

那么会在空余部分用0补上,输出结果就是000000123

width和.prec:

74268276af4b1364b3f1ae56a49e1f3a.png

对于number.number的使用,如

printf("%9.2f",123.0);

那就是输出长度为9,保留两位小数点的字符,输出结果为:

123.00

算上空格、数字、小数点 长度为9

对于*的使用,可以理解为如下:

星号使用的是下一个参数,如:

printf("%*d\n",6,123);

那么这个星号指的就是下一个参数6,然后%d仍然是123.

这对要求格式输出的时候很有用,尤其当我的参数是变量的时候

hlL 修饰符 表示修饰类型

0cb940fb2d7cadc710dc54d47899ce57.png

hh → 把我要输出的东西当作单个字节来输出

h → 当作short输出

以此类推

(感觉用到的不多,编译器不同出现的结果也不同)

type总结

815289d29494749a2e0ed612d25f64c8.png

scanf的flag

f02400491ce95e86933c00fa365f9419.png

对于跳过的使用,如下:

#include

int main(){

int num;

scanf("%*d%d",&num);

printf("%d\n",num);

return 0;

}

此时,输入123_456(_是空格),num跳过了123,读取到的是456,所以printf出来的就是456

scanf的type

93faa18426b8cb224dba22414128f810.png

对于scanf的%i,这个比%d更加灵活,举例如下:

int main(){

int num;

scanf("%i",&num);

printf("%d\n",num);

return 0;

}

如果我输入的是123,那么还是输出123,

如果我输入的是0x12,显然这是16进制,系统会自动将其转化成10进制输出,结果为18

如果我输入的是012,系统会辨认出这是8进制,将其转为10进制输出,结果为10

[…] 所允许的字符

f48ff6dfaf40376f9e063584ee8eb152.png

上面是我要输入的东西,对于下方的scanf进行解释:

最开始出现的%*[^,] 我们读取的是$GPRMC,由于带星号,所以这是跳过接收,直到出现逗号为止(不包含这个逗号)

其次一个逗号,格式要求

再接下来的%[^,] 读取字符串,直到逗号为止,那就是读入了004319.00,后方代码以此类推。

scanf和printf的返回值

1.读入的项目(item)数

2.输出的字符数

int main(){

int i1,i2;

int num;

i1 = scanf("%d",&num);

i2 = printf("%d\n",num);

printf("%d:%d\n",i1,i2);

return 0;

}

输入1234,输出的i1,i2行是

1:5

1代表我读入的项目数是1(一个num)

5代表我输出的字符数是5(1、2、3、4、\n)

在要求严格的程序中,应该判断每次调用scanf或printf的返回值,从而了解程序运行中是否存在问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C语言格式化输入输出有以下格式: 输入: - %d:整数 - %f:浮点数 - %c:字符 - %s:字符串 输出: - %d:整数 - %f:浮点数 - %c:字符 - %s:字符串 - %x:十六进制整数 - %o:八进制整数 - %p:指针地址 - %e:科学计数法表示的浮点数 - %E:科学计数法表示的浮点数(大写) - %g:%e或%f表示的浮点数,根据值的大小选择 - %G:%E或%F表示的浮点数,根据值的大小选择 - %u:无符号整数 C语言格式化输入输出还有很多其他可用格式,这些只是一些常用格式. ### 回答2: C语言格式化输入输出主要有以下格式: 1. %d:用于输入输出整数数据。 2. %f:用于输入输出浮点数数据。 3. %c:用于输入输出字符数据。 4. %s:用于输入输出字符串数据。 5. %p:用于输入输出指针类型数据的地址。 6. %e或%E:用于输入输出科学计数法表示的浮点数。 7. %u:用于输入输出无符号整数数据。 8. %o:用于输入输出八进制整数。 9. %x或%X:用于输入输出十六进制整数。 10. %lld或%llu:用于输入输出长长整数或无符号长长整数。 11. %Lf:用于输入输出长双精度浮点数。 12. %hd:用于输入输出短整数。 13. %li:用于输入输出长整数。 14. %lu:用于输入输出无符号长整数。 15. %f:用于输入输出单精度浮点数。 16. %Lf:用于输入输出双精度浮点数。 17. %hi:用于输入输出有符号短整数。 以上是C语言中常用的格式化输入输出格式,可以满足大部分的数据输入输出需求。使用不同的格式化输出可以灵活地进行数据的不同形式的打印与读取。 ### 回答3: C语言格式化输入输出中常用的格式有以下几种: 1. %d:表示输出或读取十进制整数。 例子:int num = 10; printf("%d", num); // 输出结果为10 2. %f:表示输出或读取浮点数,通常使用%f来输出小数点后六位。 例子:float num = 3.14; printf("%f", num); // 输出结果为3.140000 3. %c:表示输出或读取单个字符。 例子:char ch = 'A'; printf("%c", ch); // 输出结果为A 4. %s:表示输出或读取字符串。 例子:char str[] = "Hello World"; printf("%s", str); // 输出结果为Hello World 5. %p:表示输出或读取指针的值。 例子:int* ptr = &num; printf("%p", ptr); // 输出结果为指针ptr的地址 6. %o:表示输出或读取八进制数。 例子:int num = 15; printf("%o", num); // 输出结果为17 7. %x或%X:表示输出或读取十六进制数,%x输出小写字母,%X输出大写字母。 例子:int num = 255; printf("%x", num); // 输出结果为ff 8. %e或%E:以指数形式输出或读取浮点数,%e输出小写字母e,%E输出大写字母E。 例子:float num = 10000.0; printf("%e", num); // 输出结果为1.000000e+04 以上是C语言中常用的格式化输入输出格式,可以根据不同的需求使用不同的格式来正确输出或读取相应的数据类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值