打印
[技术讨论]

[每周分享]C语言格式化输入输出

[复制链接]
250|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 咕咕呱呱孤寡 于 2024-8-10 11:01 编辑

#申请原创#@21小跑堂
在‌C语言中,格式化输入输出主要涉及两个函数:‌
1.scanf()函数用于从标准输入读取数据,例如读取基本变量类型输入:scanf("%d",&a);或读取字符型数组:scanf("%c",a[2]);
2.printf()函数用于将数据格式化后输出到标准输出。一般格式为printf("<格式化字符串>",<参量表>);
这两个函数是C语言标准库中的核心部分,用于实现程序与用户的交互。

首先我们先从格式化输出符号开始,如以下示例
格式化输出符号通常由%和格式符号组成,其作用是将输出数据转为固定格式。
(1)%d或%i :用于输出十进制整数。
(2)%u        :用于输出无符号十进制整数。
(3)%o        :输出八进制形式的整数。
(4)%x        :输出十六进制整数,%X输出大写字母,%x输出小写字母。
(5)%f         :输出普通浮点数。
(6)%s         :输出字符串。
(7)%c         :输出字符。
(8)%e 或 %E:用于输出科学计数法表示的浮点数。
(9)%g 或 %G:用于输出浮点数,但是没有无意义的零。
(10)%p        :输出指针地址。
以上为主要常用格式。

其次我们从输入输出函数说明
scanf()函数和printf()函数均可以使用%d和%i输入输出整数;
printf()函数中%d和%i无区别;
scanf()函数中%d指有符号十进制数,%i则可以匹配八进制、十进制、十六进制整数输入使用。

最后我们进行示例举例说明:
①scanf("%d %d",&a,&b);
整型数据输入时,scanf()函数的分隔符是所有的空白字符(空格、换行符\n、制表符以及回车\r),例如上示举例,当输入9     8时则输出9 8;
scanf()函数只接受非空白字符,三种格式输入的空白字符会被存入缓冲区,下一次读取时会先读取到缓存区里的空白字符,例如下示例:
②#include <stdio.h>
   void main()
  {
     int a;
     char c;
     char b[5];
     scanf("%d%c"&a,&c);
     printf("a=%d c=%c",a,c);
  }
在此函数输入3按下回车键后,输出结果为
a=3 c=

输出后多了一行空白,即是因为输入的\n。

③scanf("%c%c",&a,&b);
若格式化符号为这种,那么输入时不能有任何分隔符,例如输入bd,则输出bd;若输入b d,则不会正常输出
若想b d正常输出,那么输入函数要写为scanf("%c %c",&a,&b);即可

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1683

帖子

2

粉丝