C 标准库 - <stdio.h>

C 标准库 - <stdio.h>

引言

在 C 编程语言中,stdio.h 是一个非常重要的头文件,它包含了标准输入输出函数,是 C 程序进行输入输出操作的核心。本文将详细介绍 <stdio.h> 头文件中包含的函数及其应用,帮助读者更好地理解和运用这个标准库。

一、<stdio.h> 头文件概述

stdio.h 是 Standard Input/Output 的缩写,它定义了标准输入输出函数,包括输入输出缓冲区、格式化输入输出、文件操作等。在 C 程序中,包含 stdio.h 头文件后,就可以使用这些函数进行输入输出操作。

二、<stdio.h> 中常用的函数

1. 打开文件

以下是一些用于打开文件的函数:

  • FILE *fopen(const char *filename, const char *mode);:打开一个指定的文件,返回一个指向 FILE 对象的指针。
  • FILE *freopen(const char *filename, const char *mode, FILE *stream);:重新打开一个指定的文件,返回一个指向 FILE 对象的指针。
  • FILE *fdopen(int fd, const char *mode);:根据文件描述符打开一个文件,返回一个指向 FILE 对象的指针。

2. 关闭文件

  • int fclose(FILE *stream);:关闭一个打开的文件,返回 0 表示成功,非 0 表示失败。

3. 格式化输入输出

  • int fprintf(FILE *stream, const char *format, ...);:将格式化后的数据写入到指定的文件流中。
  • int fscanf(FILE *stream, const char *format, ...);:从指定的文件流中读取格式化后的数据。
  • int printf(const char *format, ...);:将格式化后的数据输出到标准输出。
  • int scanf(const char *format, ...);:从标准输入读取格式化后的数据。

4. 文件操作

  • int fseek(FILE *stream, long offset, int origin);:移动文件指针到指定的位置。
  • long ftell(FILE *stream);:返回文件指针当前位置的偏移量。
  • void rewind(FILE *stream);:将文件指针移动到文件开头。

三、示例代码

以下是一个简单的示例,演示了如何使用 <stdio.h> 中的函数进行文件操作:

c 复制代码
#include <stdio.h>

int main() {
    FILE *fp;
    int i;
    char filename[] = "example.txt";

    // 打开文件
    fp = fopen(filename, "w+");
    if (fp == NULL) {
        printf("打开文件失败\n");
        return 1;
    }

    // 写入数据
    for (i = 0; i < 10; i++) {
        fprintf(fp, "Hello, World! %d\n", i);
    }

    // 移动指针到文件开头
    rewind(fp);

    // 读取数据
    while (fscanf(fp, "%d", &i) != EOF) {
        printf("读取到的数据:%d\n", i);
    }

    // 关闭文件
    fclose(fp);

    return 0;
}

四、总结

本文介绍了 C 标准库 <stdio.h> 中的常用函数及其应用,希望对读者有所帮助。在实际编程过程中,熟练掌握这些函数,能够提高编程效率和代码质量。

相关推荐
傻啦嘿哟5 小时前
某招聘平台爬虫:爬取招聘岗位数据,分析各城市薪资水平
开发语言·爬虫·python
2501_933670795 小时前
2026秋招量化分析岗技能栈:Python、SQL、统计建模、回测项目怎么准备
开发语言·python·sql
李少兄6 小时前
JavaScript 数据类型完全指南
开发语言·javascript·ecmascript
Seoyoneh6 小时前
Agentic Workflow编排架构:云客服从“被动响应”迈向“主动执行”的技术实现
java·开发语言·架构
Tangyuewei7 小时前
Java 写 Agent:模型只是组件
java·开发语言
小玮看世界7 小时前
[Python]从合并区间到传感器融合区:合并区间在传感器区域融合的实际落地
开发语言·python
繁星蓝雨8 小时前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
Evand J8 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
杜大哥9 小时前
python程序:如何查看电脑【电池电量的剩余百分比】 和 【是否插入连接着充电器】?
开发语言·python
wuyk5559 小时前
Python网络爬虫入门到实战 第01章:爬虫到底是什么?原理、流程、合法性、风险全解析(零基础必看)
开发语言·爬虫·python