`

scanf族函数高级用法

F# 
阅读更多


如何解释 fscanf(fd,"%*[^\n]")
"%[^\n]"表示读输入字符串,直到碰到字符‘\n’为止,其中^表示否的意思

同样的:

sscanf是一个很好用的函数,利用它可以从字符串中取出整数、浮点数和字符串等等。它的使用方法简单,特别对于整数和浮点数来说。但新手可能并不知道处理字符串时的一些高级用法,这里做个简要说明吧。

  1. 常见用法。

以下是引用片段:
  char str[512] = {0}; 
  sscanf( "123456 ", "%s ", str); 
  printf( "str=%s\n ", str); 


  2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。

以下是引用片段:
  sscanf( "123456 ", "%4s ", str); 
  printf( "str=%s\n ", str); 


  3. 取到指定字符为止的字符串。如在下例中,取遇到空格为止字符串。

以下是引用片段:
  sscanf( "123456 abcdedf ", "%[^ ] ", str); 
  printf( "str=%s\n ", str); 


  4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。

以下是引用片段:
  sscanf( "123456abcdedfBCDEF ", "%[1-9a-z] ", str); 
  printf( "str=%s\n ", str); 


  5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。

以下是引用片段:
  sscanf( "123456abcdedfBCDEF ", "%[^A-Z] ", str); 
  printf( "str=%s\n ", str); 


sacnf(格式化字符串输入) 
相关函数 fscanf,snprintf
 
表头文件 #include<stdio.h>
 
定义函数 int scanf(const char * format,.......);
 
函数说明 scanf()会将输入的数据根据参数format字符串来转换并格式化数据。Scanf()格式转换的一般形式如下
%[*][size][l][h]type
以中括号括起来的参数为选择性参数,而%与type则是必要的。
* 代表该对应的参数数据忽略不保存。
size 为允许参数输入的数据长度。
l 输入的数据数值以long int 或double型保存。
h 输入的数据数值以short int 型保存。
底下介绍type的几种形式
%d 输入的数据会被转成一有符号的十进制数字(int)。
%i 输入的数据会被转成一有符号的十进制数字,若输入数据以“0x”或“0X”开头代表转换十六进制数字,若以“0”开头则转换八进制数字,其他情况代表十进制。
%0 输入的数据会被转换成一无符号的八进制数字。
%u 输入的数据会被转换成一无符号的正整数。
%x 输入的数据为无符号的十六进制数字,转换后存于unsigned int型变量。
%X 同%x
%f 输入的数据为有符号的浮点型数,转换后存于float型变量。
%e 同%f
%E 同%f
%g 同%f
%s 输入数据为以空格字符为终止的字符串。
%c 输入数据为单一字符。
[] 读取数据但只允许括号内的字符。如[a-z]。
[^] 读取数据但不允许中括号的^符号后的字符出现,如[^0-9].
 
返回值 成功则返回参数数目,失败则返回-1,错误原因存于errno中。
 


分享到:
评论

相关推荐

    scanf()函数汇总【完美版】.docx

    C语言中有很多零碎知识点,所以为了方便大家学习了解,做了一次汇总,让你瞬间明白scanf();函数的入门和高级用法,绝对干货中的干货汇总!

    sscanf函数的高级用法

    sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。

    -C++参考大全(第四版) (2010 年度畅销榜

    25.31 scanf函数 25.32 setbuf函数 25.33 setvbuf函数 25.34 sprinff函数 25.35 sscanf函数 25.36 tmpfile函数 25.37 tmpnam函数 25.38 ungetc函数 25.39 vpfintf,vfpfintf和vsprintf函数 第26章 字符串与字符函数...

    C语言通用范例开发金典.part2.rar

    1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组...

    C语言通用范例开发金典.part1.rar

    1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组...

    C 开发金典

    1.1.3 一维数组的高级应用 5 范例1-3 一维数组的高级应用 5 1.1.4 显示杨辉三角 7 范例1-4 显示杨辉三角 7 ∷相关函数:c函数 8 1.1.5 魔方阵 9 范例1-5 魔方阵 9 1.1.6 三维数组的表示 14 范例1-6 三维数组...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    12.2 进程的叠加:exec...()函数族系 12.3 使用pipe()实现进程间的通信 12.4 信号 12.5 例子:哲学家用餐问题 12.6 矩阵的动态分配 12.6.1 为什么二维数组无法满足要求 12.6.2 用指针数组创建矩阵 12.6.3 调整...

    C语言标准教程第一章 C语言概论

     上例中程序的执行过程是,首先在屏幕上显示提示串,请用户输入两个数,回车后由scanf函数语句接收这两个数送入变量x,y中,然后调用max函数,并把x,y 的值传送给max函数的参数a,b。在max函数中比较a,b的大小,把大...

    C语言大纲及课件

    该课程属于高级语言,但具有低级语言的许多特点,是一种结构化程序设计语言,它既适合于编写系统软件,又适合于编写应用软件。  通过本课程的学习,学生应能掌握C语言的语法、语义规则、语言的数据类型及程序结构。...

    Linux程序设计 第4版.haozip01

    3.6.2 scanf、fscanf和sscanf函数 96 3.6.3 其他流函数 98 3.6.4 文件流错误 99 3.6.5 文件流和文件描述符 99 3.7 文件和目录的维护 100 3.7.1 chmod系统调用 100 3.7.2 chown系统调用 100 3.7.3 unlink、...

    Linux程序设计 第4版.haozip02

    3.6.2 scanf、fscanf和sscanf函数 96 3.6.3 其他流函数 98 3.6.4 文件流错误 99 3.6.5 文件流和文件描述符 99 3.7 文件和目录的维护 100 3.7.1 chmod系统调用 100 3.7.2 chown系统调用 100 3.7.3 unlink、...

    谭浩强C语言设计第三版.pdf

     2.4.2 格式化输入函数scanf()  2.4.3 字符输入/输出函数getchar()与putchar()  习题二 第3章 C语言程序的流程控制  3.1 算法  3.1.1 算法的组成要素与基本性质  3.1.2 算法描述工具  3.1.3 自项向下、逐步...

    C语言设计报告(电子通讯录).doc

    辽宁工程技术大学 高级语言程序设计(C) 课程设计报告书 设计题目 : 电子通讯录 2013年01月 目 录 一、引言…………………………………… 二、系统功能和原始数据……………………………………… 三、程序总体设计...

    C语言讲解 主讲:邓君峰

    最好直接了当: 最好直接了当: 基本输入输出函数 scanf( ) 格式化输入函数 scanf("%d %d", &m, &n ); scanf(格式控制 输入参数 ... , 输入参数 格式控制, 输入参数n); 格式控制 输入参数1, –格式控制说明 %… –...

    C语言入门经典(第4版)--源代码及课后练习答案

    他曾在IBM工作多年,能使用多种语言进行编程(在多种机器上使用汇编语言和高级语言),设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验(教学内容包括C、C++、Fortran、PL/1、APL等),同时还是机械、加工...

    你必须知道的495个C语言问题

    基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配一些空间,但却不行。这些代码有什么问题呢?char*p;*p=malloc(10); 4.3 *p++自增p还是p所指向的变量? 指针操作 4.4 我用指针...

    《你必须知道的495个C语言问题》

    基本的指针应用 45 4.1 指针到底有什么好处? 45 4.2 我想声明一个指针并为它分配一些空间,但却不行。这些代码有什么问题呢?char *p; *p =malloc(10); 45  4.3 *p++自增p还是p所指向的变量? 46 指针操作...

    C语言程序设计标准教程

    用scanf函数动态地输入sex和score成员值,然后把boy1的所有成员的值整体赋予boy2。最后分别输出boy2 的各个成员值。本例表示了结构变量的赋值、输入和输出的方法。 结构变量的初始化  如果结构变量是全局变量或为...

Global site tag (gtag.js) - Google Analytics