返回介绍

创建自己的数据流

发布于 2024-10-10 23:21:25 字数 1864 浏览 0 评论 0 收藏 0

程序运行时,操作系统会为它创建三条数据流:标准输入、标准输出和标准错误。但有时你需要创建自己的数据流。

好在操作系统没有规定只能使用它分配的三条数据流,你可以在程序运行时创建自己的数据流。

每条数据流用一个指向文件的指针来表示,可以用

fopen() 函数创建新数据流。

fopen() 函数接收两个参数:文件名和模式。共有三种模式,分别是 w (写文件)、r (读文件)与 a (在文件末尾追加数据)。

创建数据流后,可以用 fprintf() 往数据流中打印数据。如果想要从文件中读取数据,则可以用 fscanf() 函数:fprintf(out_file, "不要穿 %s 色的衣服和 %s 色的裤子”, ”红”, ”绿”);fscanf(in_file, "%79[^\n]\n", sentence);


最后,当用完数据流,别忘了关闭它。虽然所有的数据流在程序结束后都会自动关闭,但你仍应该自己关闭它们:fclose(in_file);fclose(out_file);

现在试一试。

磨笔上阵

下面这段程序代码将从 GPS 文件读取所有数据,写到其他三个文件中的一个,看看你能不能将空格填满。

 这里没有蠢问题问:最多能有几条数据流?答:这取决于操作系统。通常情况下,一个进程最多可以有 256 条数据流。但请记住,数据流的数量是有限的,用完后应该关闭它们。问:为什么 FILE 要大写?答:说来话长,最早 FILE 是用宏定义的,而宏的名字通常都要大写。稍后会看到宏。

 

磨笔上阵解答

下面这段程序代码将从 GPS 文件读取所有数据,写到其他三个文件中的一个,你将填满空格。

程序运行了,但是……

当你用以下命令编译并运行程序:

程序会逐行读取 spooky.csv 文件中的数据,分别写到 ufos.csv、disappearances.csv、other.csv 这三个文件中。

程序虽然正确运行了,但如果用户想改变分类方法怎么办?例如用户想搜索别的关键字,或把数据写到其他文件中。有没有什么办法能让用户设置关键字与文件,又不必重新编译程序?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文