当前位置: 首页> 财经> 金融 > 万网老板是谁_怎么制作ppt幻灯片_时事新闻热点_搜狐三季度营收多少

万网老板是谁_怎么制作ppt幻灯片_时事新闻热点_搜狐三季度营收多少

时间:2025/7/8 14:32:54来源:https://blog.csdn.net/qq_39725309/article/details/145101810 浏览次数:0次
万网老板是谁_怎么制作ppt幻灯片_时事新闻热点_搜狐三季度营收多少

标准 I/O文件 I/O 是两种常见的输入输出操作方式。它们的核心功能都是处理数据流,但使用场景和实现方式有所不同,适用于不同的需求。

标准 I/O

标准 I/O 是指与标准输入、标准输出和标准错误流(分别为 stdin、stdout 和 stderr)交互的输入输出操作。这个通常用于程序与用户交互,例如从键盘读取数据或向终端打印输出。

标准 I/O 的通道:

  1. 标准输入 (stdin):默认从键盘获取输入。
  2. 标准输出 (stdout):默认向终端显示输出。
  3. 标准错误 (stderr):输出错误信息,默认也显示在终端。
#include <stdio.h>int main() {char name[50];printf("Enter your name: ");  // 标准输出scanf("%s", name);            // 标准输入printf("Hello, %s!\n", name); // 标准输出return 0;
}
标准IO的特点:1>拥有缓冲区2>标准I0由C库提供-->头文件:stdio.h3>标准IO一般只做IO操作:输入/输出
标准IO的核心:结构体指针:FILE*--->在内存中开辟一个空间,用来接受fopen返回的文件信息,然后通过变量对文件进行I0操作-->流:stream
标准IO的API:	打开文件:fopen操作文件:操作较多一次操作一个字符:读:fgetc/getc/getchar写:fputc/putc/putchar一次操作一行字符:读:fgets/gets写:fputs/puts一次操作一块字符:读:fread写:fwrite关闭文件:fclose拓展函数:光标控制:fseekfte71rewind

文件 I/O

文件 I/O 是指通过文件操作函数对磁盘上的文件进行读写操作这通常用于持久化存储数据,例如读取配置文件、保存程序运行结果等。

#include <stdio.h>int main() {FILE *file = fopen("example.txt", "w"); // 打开文件用于写入if (file == NULL) {perror("Error opening file");return 1;}fprintf(file, "Hello, File I/O!\n"); // 写入文件fclose(file);                        // 关闭文件return 0;
}
  • 标准 I/O 更适合用户交互和调试信息输出;

  • 文件 I/O 是处理磁盘数据和实现数据持久化的核心工具。

     文件IO的特点:1>没有缓冲区2>文件IO由系统底层提供	POSIX3>文件I0除了可以做I0操作,也可以打开Linux的一些特殊文件:管道文件/套接字文件.....文件I0的核心:	文件描述符:fd--->0、1、2:三个标准文件是一种Linux用来标识正在打开的文件 的一种资源:类型为int,非0的取值特征:优先分配最小目 未被使用的文件IO的API:	打开文件:open重点:1>打开方式:必选且互斥:O_RDONLY		只读O_WRONLY		只写O_RDWR			可读可写选项且多选:O_CREAT			创建O_EXCL			创建前判断是否存在O_TRUNC			清空模式O APPEND		追加模式2>特殊的第三参:open拥有两种传参方式:1>两个参数:1>要打开的文件2>打开方式2>三个参数:1>要打开的文件2>打开方式3>创建时赋予的权限 -----****隐藏参,需要特定的条件开启开启第三参的条件:打开方式中:拥有 O_CREAT操作文件读:read写:write操作逻辑:1>读:从相应的文件描述符中读取相关的内容2>写:将对应的数据写入到相应的文件描述符中--->可以完成 一些通信类的操作--->可以完成 一些通信类的操作关闭文件:c1ose拓展函数1seek:光标控制dup:文件描述符重定向dup2:文件描述符重定向
    

标准 I/O 的典型使用场景
  • 用户交互:程序从用户输入中读取数据,并将结果输出到屏幕。示例:计算器程序、命令行工具。
  • 调试信息:使用标准错误流(stderr)打印程序运行时的错误日志或调试信息。
  • 简单的数据流操作:处理小规模的数据,比如读取一行输入或打印一段文本。
文件 I/O 的典型场景
  • 数据持久化:将程序运行的结果保存到文件中,以便后续使用。示例:日志文件、数据库文件。
  • 大规模数据处理:读取和处理磁盘上的大文件,如 CSV 数据、图片、视频等,将它们转化为二进制数据进行传输。
  • 配置文件:从文件中读取程序的配置参数,或将配置写回文件。
  • 文件编辑工具:文本编辑器或文件转换工具。
#include <stdio.h>int main() {FILE *file = fopen("data.txt", "r");if (file == NULL) {perror("Error opening file");return 1;}char line[256];while (fgets(line, sizeof(line), file)) { // 从文件中逐行读取printf("%s", line);                  // 打印到标准输出}fclose(file); // 关闭文件return 0;
}
二者的共同点
  • 基于流的操作:无论是标准 I/O 还是文件 I/O,都通过流(FILE*)来操作数据。
  • 缓冲机制:都使用缓冲区提高 I/O 性能。标准 I/O 的缓冲区通常与终端交互频率相关,而文件 I/O 的缓冲区通常与磁盘块大小相关。
  • 错误处理:都通过函数返回值或错误流报告操作失败的原因。

标准 I/O 本质上是文件 I/O 的一种特殊形式。标准输入、标准输出和标准错误流在系统中对应以下文件描述符:

  • stdin -> 文件描述符 0
  • stdout -> 文件描述符 1
  • stderr -> 文件描述符 2

它们是操作系统在程序启动时默认打开的文件流,因此可以像普通文件一样操作。

#include <stdio.h>int main() {FILE *file = fopen("output.txt", "w");if (file == NULL) {perror("Error opening file");return 1;}// 标准输出printf("This is standard output.\n");// 文件输出fprintf(file, "This is file output.\n");fclose(file);return 0;
}
性能对比
  • 标准 I/O 性能
    • 标准 I/O 主要用于交互式操作,数据量较小,性能通常不会成为瓶颈。
    • 由于标准输出默认是行缓冲,频繁的逐行输出会触发缓冲区刷新,可能会略微影响性能。
  • 文件 I/O 性能
    • 文件 I/O 涉及磁盘操作,其性能受文件大小、磁盘速度和文件系统的影响。
    • 文件 I/O 通常使用块缓冲(Block Buffering),一次性读写较大的数据块以提高性能。
    • 对于大规模数据处理,文件 I/O 的性能优化是关键,比如使用内存映射(Memory Mapping)技术代替传统文件读写。

二者的综合对比分析

属性标准 I/O文件 I/O
操作对象标准输入、输出和错误流(如终端)。磁盘上的文件。
数据来源/目标键盘(输入)、屏幕(输出)、错误日志等。文件(持久化存储)。
函数接口printf、scanf、putchar、getchar 等。fopen、fclose、fread、fwrite、fprintf 等。
存储特点数据是临时的,程序关闭后数据不保存;临时存储,程序关闭后数据会丢失。数据存储在磁盘文件中,可持久化;持久化存储,数据保存在磁盘上。
缓冲机制标准 I/O 使用流缓冲,通常实时刷新到终端。文件 I/O 使用文件缓冲,通常批量刷新到磁盘。
灵活性受限于标准输入输出,适合简单交互。更灵活,可操作任意文件,适合复杂数据读写。
性能适合小规模、即时交互,性能影响较小。需要文件系统支持,频繁文件操作可能导致性能瓶颈。
适用场景简单交互、用户输入输出、调试信息。数据持久化、大文件处理、复杂数据操作。
错误处理错误通过返回值或 stderr 流报告。错误通过函数返回值(如 NULL 或 EOF)报告。

综上。希望该内容能对你有帮助,感谢!

以上。仅供学习与分享交流,请勿用于商业用途!转载需提前说明。

我是一个十分热爱技术的程序员,希望这篇文章能够对您有帮助,也希望认识更多热爱程序开发的小伙伴。
感谢!

关键字:万网老板是谁_怎么制作ppt幻灯片_时事新闻热点_搜狐三季度营收多少

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: