教你一招如何半小时把C语言的 scanf printf sscanf sprintf fscanf fprintf wscanf wprintf 玩出花来

本篇会加入个人的所谓‘鱼式疯言’
❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言
而是理解过并总结出来通俗易懂的大白话,
我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.
🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!
在这里插入图片描述

前言

相比友友们都接触 scanf printf
同时小编在 《用C语言了解文件那些下 ‘流‘ 事》 (http://t.csdnimg.cn/1s3Ek)的那篇文章中也详细介绍过fprintf 与 fscanf 的各种细节。 😍 😍 😍
而在本篇文章中小编会带着大家一起来梳理我们庞大的且常用的 格式化输入输出 的大家庭。 💖 💖 💖

目录

  1. scanf 与 printf
  2. sscanf 与 sprintf
  3. fscanf 与 fprintf
  4. wscanf 与 wprintf 💕 💕 💕

一.scanf 与 printf

1. printf

printf() 的作用是将参数文本输出到屏幕。它名字里面的 f 代表 format (格式化),表示可以定制输出文本的格式。

<1>. printf 简介

在这里插入图片描述
返回类型: int (返回的是输出打印的字符个数)
参数:可变参数 (逗号坐边) 与 类型变量参数 (逗号右边)
作用:从 格式化参数中 打印到 标准输出流(屏幕)

<2>. 栗子说明

#include<stdio.h>

int main(void)
{
   
	printf("Hello\nWorld\n");
	printf("Hello\n");
	printf("World\n");
	return 0;
}

上面命令会在屏幕上输出一行文字 “Hello World”
printf() 不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行。

为了让光标移到下一行的开头,可以在输出文本的结尾,添加一个换行符 \n

在这里插入图片描述

鱼式疯言

printf() 是在标准库的头文件 <stdio.h> 定义的。

使用这个函数之前,必须在源码文件头部引入这个头文件。

<3>.占位符(可变参数)

printf() 可以在输出文本中指定占位符。
所谓 “占位符”,就是这个位置可以用其他值代入。

#include<stdio.h>

// 输出 There are 3 apples

int main()
{
   
	printf("There are %d apples\n", 3);
	return 0;
}

在这里插入图片描述
这时爱发问的小爱同学又来特意问,这是咱们替换的🤔 🤔 🤔
怎么那么神奇呢 😲 😲 😲
那么小编就为这位好学的同学解答吧 ! ! !
上面示例中, There are %d apples\n 是输出文本,里面的%d 就是占位符,表示这个位置要用其他值来替换。

占位符的第一个字符一律为百分号% ,第二个字符表示占位符的类型, %d 表示这里代入的值必须是一个整数。

printf() 的第二个参数就是替换占位符的值,上面的例子是整数 3 替换 %d

执行后的 输出结果 就是 There are 3 apples 。

<4>. 占位符列举

常用的占位符除了 %d ,还有 %s 表示代入的是字符串。

#include<stdio.h>


int main()
{
   
	printf("%s says it is %d o'clock\n", "lisi", 21);
	return 0;
}

在这里插入图片描述
上面示例中,输出文本%s says it is %d o’clock 有两个占位符
第一个是字符串占位符 %s
第二个是整数占位符 %d
分别对应printf() 的第二个参数 ( lisi )和第三个参数( 21 )。
执行后的输出就是 lisi says it is 21 o’clock 。

printf() 参数与占位符是一一对应关系,如果有n 个占位符
printf() 的参数就应该有n +1 个。
如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值。

像类似这些占位符在我们C语言中是很多的
小编还特意整理了一下常用的占位符,需要的宝子们可以自取哦 😊 😊 😊

%a :十六进制浮点数,字母输出为小写。
• %A :十六进制浮点数,字母输出为大写。
• %c :字符。
• %d :十进制整数。
• %e :使用科学计数法的浮点数,指数部分的e 为小写。
• %E :使用科学计数法的浮点数,指数部分的E 为大写。
• %i :整数,基本等同于%d 。
• %f :小数(包含float 类型和double 类型)。
• %g :6个有效数字的浮点数。整数部分一旦超过6位,就会自动转为科学计数法,指数部分的e
为小写。
• %G :等同于%g ,唯一的区别是指数部分的E 为大写。
• %hd :十进制 short int 类型。
• %ho :八进制 short int 类型。
• %hx :十六进制 short int 类型。
• %hu :unsigned short int 类型。
• %ld :十进制 long int 类型。
• %lo :八进制 long int 类型。
• %lx :十六进制 long int 类型。
• %lu :unsigned long int 类型。
• %lld :十进制 long long int 类型。
• %llo :八进制 long long int 类型。
• %llx :十六进制 long long int 类型。
• %llu :unsigned long long int 类型。
• %Le :科学计数法表示的 long double 类型浮点数。
• %Lf :long double 类型浮点数。
• %n :已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。
• %o :八进制整数。
• %p :指针。
• %s :字符串。
• %u :无符号整数(unsigned int)。
• %x :十六进制整数。
• %zd : size_t 类型。
• %% :输出一个百分号。

<5>. 限制整数宽度

printf() 允许限定占位符的最小宽度。

#include <stdio.h>
int m
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邂逅岁月

感谢干爹的超能力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值