打印
[其它应用]

C语言 sscanf()函数,从字符串读取格式化输入

[复制链接]
2017|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
onlycook|  楼主 | 2024-5-17 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sscanf()函数
C语言stdio.h标准库中的sscanf()函数,可以用于从指定的字符串中格式化地读取数据,并存储到参数指定的变量之中。

sscanf()函数语法:
int sscanf( const char *str, const char *fmt, ...)
sscanf()参数
参数        描述
str        字符串,包含的所要被格式化读取的数据之间一般以空格隔开
fmt        包含格式说明符的格式化字符串
...        个数可变的参数,用于存储读取到的数据,一般格式为:&varName
sscanf类型说明符和宽度修饰符
C语言中sscanf()函数的各种类型的说明符和宽度修饰符,及该修饰符的作用及使用规范,可参考上一章节scanf()函数中内容,里头已经有较为详细的介绍。

sscanf()返回值
如果读取成功或未全部成功,则返回成功读取和存储的个数,否则将返回一个EOF(这个值一般是一个负数)。

sscanf()实例代码
如下实例代码,使用sscanf()函数从字符串中读取数据,其中格式化读取类型为字符串数据时使用了宽度修饰符修饰,避免缓冲区溢出:

#include "stdio.h"

int main() {
    char str[] = "1 2.1 Hello, World";
    char buf[6];
    int int_num;
    float float_num;
    int num = sscanf(str, "%d %f %5s", &int_num, &float_num, &buf);
    if(num > 0){
        printf("sscanf()函数格式化读取的数据个数为:%d\n",num);
        printf("sscanf()函数读取到的字符串为:%s\n",buf);
    }else{
        printf("sscanf()函数格式化读取数据未成功\n");
    }
    return 0;   
}
代码编译运行,得到输出并输入:

sscanf()函数格式化读取的数据个数为:3
sscanf()函数读取到的字符串为:Hello
免责声明:内容仅供参考,不保证正确性。

使用特权

评论回复
沙发
亚瑟| | 2024-5-24 21:58 | 只看该作者
有办法从电子表格导入吗

使用特权

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

本版积分规则

433

主题

1618

帖子

3

粉丝