当前位置: 首页 > ai >正文

在Linux中,使用标准IO库,进行格式化IO操作

函数目标/来源特点
printf标准输出最基础输出函数
fprintf文件流(FILE*可输出到文件或标准错误流
dprintf文件描述符(int fd适用于低级I/O操作
sprintf字符数组需手动管理缓冲区,有溢出风险
snprintf字符数组(带大小限制)安全,推荐替代sprintf
scanf标准输入需用&取变量地址
fscanf文件流(FILE*从文件读取结构化数据
sscanf字符串解析字符串中的格式化数据

 输出函数

  1.printf()

  • 作用:将格式化数据输出到标准输出(stdout)。

  • 示例

  • int num = 42;
    printf("Value: %d\n", num); // 输出:Value: 42

    2.fprintf()

  • 作用:将格式化数据输出到指定的文件流(如文件、标准错误流)。

  • 示例

    FILE *file = fopen("log.txt", "w");
    fprintf(file, "Log: %s\n", "File created"); // 写入文件
    fprintf(stderr, "Error: Invalid input\n");   // 输出到标准错误流

    3.dprintf()

  • 作用:将格式化数据输出到文件描述符指定的文件(需包含 <unistd.h>)。

  • 示例

    int fd = open("data.txt", O_WRONLY | O_CREAT, 0644);
    dprintf(fd, "PID: %d\n", getpid()); // 写入文件描述符对应的文件

    4.sprintf()

  • 作用:将格式化数据写入字符数组中。

  • 风险:不检查缓冲区大小,可能导致溢出。

  • 示例

    char buffer[20];
    sprintf(buffer, "Result: %d", 100); // buffer内容:Result: 100

    5.snprintf()

  • 作用:安全版的sprintf(),指定缓冲区大小防止溢出。

  • 示例

    char buffer[10];
    snprintf(buffer, sizeof(buffer), "Number: %d", 12345); 
    // buffer内容:Number: 1(因缓冲区不足被截断)

    输入函数

  • 1.scanf()

  • 作用:从标准输入(stdin)读取格式化数据。

  • 示例

    int age;
    printf("Enter your age: ");
    scanf("%d", &age); // 输入:25 → age = 25

    2.fscanf()

  • 作用:从文件流中读取格式化数据。

  • 示例

    FILE *file = fopen("data.txt", "r");
    char name[20];
    int id;
    fscanf(file, "%s %d", name, &id); // 从文件读取字符串和整数

    3.sscanf()

  • 作用:从字符串中解析格式化数据。

  • 示例

    char input[] = "Date: 2023-10-05";
    int year, month, day;
    sscanf(input, "Date: %d-%d-%d", &year, &month, &day); 
    // 解析结果:year=2023, month=10, day=5

http://www.xdnf.cn/news/2337.html

相关文章:

  • 深度解析Zemax优化函数:让光学设计从“能用”到“极致”的核心密码
  • 驱动开发硬核特训 · Day 22(下篇): # 深入理解 Power-domain 框架:概念、功能与完整代码剖析
  • I-CON: A Unifying Framework for Representation Learning
  • qt 3d航迹图
  • Scala集合操作与WordCount案例实战总结
  • Linux高效IO
  • SQL面试之--明明建了索引为什么失效了?
  • docker部署ruoyi系统
  • Rule.resourceQuery(通过路径参数指定loader匹配规则)
  • 【音视频】FFmpeg过滤器框架分析
  • django.db.models.query_utils.DeferredAttribute object
  • PDF嵌入图片
  • python连接Elasticsearch并完成增删改查
  • 游戏遭遇DDoS攻击如何快速止损?实战防御策略与应急响应指南
  • 百度Create大会深度解读:AI Agent与多模态模型如何重塑未来?
  • PostgreSQL的扩展 pgcrypto
  • 全场景婴幼儿托育服务与管理实训室建设方案
  • 鸿蒙版电影app设计开发
  • 【Quest开发】透视环境下抠出身体并能遮挡身体上的服装
  • 【前端基础】viewport 元标签的详细参数解析与实战指南
  • Milvus(8):密集向量、二进制向量、稀疏向量
  • 烽火HG680-MC_晨星MSO9385芯片-2+8G_安卓9.0_不分地区通刷卡刷固件包
  • Java面向对象:抽象类详解
  • Linux文件操作
  • 如何避免爬虫因Cookie过期导致登录失效
  • 视觉/深度学习/机器学习相关面经总结(2)(持续更新)
  • vscode vue 的插件点击组件不能跳转到文件问题解决
  • LeetCode13_罗马数字转整数
  • OpenVLA:大语言模型用于机器人操控的经典开源作品
  • 界面打印和重定向同时实现