C语言之scanf()

C和C++2023年8月24日 am8:08发布11个月前更新 3XCN.COM站长
0 0 0
广告也精彩
目录

前言

简单记录一下scanf的使用。

scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并保存数据到其它参数。

正文

scanf说明

语法:

#include <stdio.h>  int scanf( const char *format, ... ); 

PS:返回的int是根据format成功读取到的个数!

format(格式)字符串由控制字符,空白字符和非空白字符组成。

控制字符以一个%符号开始,如下:

控制字符 说明 
%c 一个单一的字符 
%d 一个十进制整数 
%i 一个整数 
%e, %f, %g 一个浮点数 
%o 一个八进制数 
%s 一个字符串 
%x 一个十六进制数 
%p 一个指针 
%n 一个等于读取字符数量的整数 
%u 一个无符号整数 
%[] 一个字符集 
%% 一个精度符号 

scanf()读取匹配format(格式)字符串的输入。当读取到一个控制字符,它把值放置到下一个变量。空白(tabs, 空格等等)会跳过。 非空白字符和输入匹配,然后丢弃。如果是一个在%符号和控制符间的数量, 那么只有指定数量的字符转换到变量中。 如果scanf()遇到一个字符集(用%[]控制字符表示), 那么在括号中的任意字符都会读取到变量中。 scanf()的返回值是成功赋值的变量数量, 发生错误时返回EOF。

format有逗号

int num = scanf("%d,%d", &a, &b);
printf("a   = %d \n", a);
printf("b   = %d \n", b);
printf("num = %d \n", num);
以逗号分割
1,2
a   = 1
b   = 2
num = 2
以空格分割
1 2
a   = 1
b   = 0
num = 1

format有空格

int num = scanf("%d %d", &a, &b);

printf("a   = %d \n", a);
printf("b   = %d \n", b);
printf("num = %d \n", num);
以空格分割
1 2
a   = 1
b   = 2
num = 2
以逗号分割
1,2
a   = 1
b   = 0
num = 1

小结

  1. 如果format= "%d,%d"以逗号分割,必须带入逗号

  2. 如果format= "%d %d"以空格分割,必须带入空格

参考文章

  1. C/C++ 语言参考手册

 历史上的今天

版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站文章: 部分来源于网络,仅供站长学习和参考,若侵权请留言
广告也精彩

相关文章

广告也精彩

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...

网站升级中

公告

近期网站升级中,可能存在一些bug。欢迎反馈 https://www.91es.com/we.html

本站域名

本站域名 : 91es.com3xcn.com。本站邮箱 : 站长邮箱 i@oorr.cn,通知邮箱we@oorr.cn ,如有更新,请看公告 。