创建自己的数据流
程序运行时,操作系统会为它创建三条数据流:标准输入、标准输出和标准错误。但有时你需要创建自己的数据流。
好在操作系统没有规定只能使用它分配的三条数据流,你可以在程序运行时创建自己的数据流。
每条数据流用一个指向文件的指针来表示,可以用
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论