fopen在c:如何打开文件以读取,写和修改
C语言是Dennis Ritchie和Ken Thompson在20世纪70年代为UNIX操作系统开发的。它是一种标准的程序语言,在许多应用程序中,特别是在嵌入式系统中,它曾经(现在仍然)非常受欢迎。你可以偷偷看一眼本课程将向您展示如何使用C语言创建iOS应用程序
C语言在今天很重要,因为它是所有编程语言的母语——几乎所有现代编程语言都是以C为基础的。这种语言的坚实基础可以让你更快地掌握其他更新的语言。
在今天的文章中,我们将向您展示如何用C打开文件,以及如何使用一些基本的文件操作来读取、修改和写入文件。你需要有基本的c语言的工作知识。初学者不用担心。这门特殊的课程将帮助你快速地用C语言编程。
c中的文件句柄
c允许您以文件的形式处理可以是数字,文本或任何信息的大块数据。C具有用于指向文件的特殊句柄,以及一系列专门设计的库函数来处理几乎任何可能的文件事务。要访问C中的文件,您需要使用文件句柄或指针。这个语法是
文件* file_ptr;
这里打开的“File”指定指针的类型,而file_ptr是指针变量的名称。
打开文件
所以现在你有一个文件句柄,你真的如何打开文件?C有一个特殊的图书馆函数'fopen',让您轻松完成此操作。这是语法
fopen(const char *filename, const char *mode)
这里使用的参数是:
- char * filename:这是您想要打开的文件的名称,用简单的英语表示。相反,它是一个字符指针,指向存储在字符数组中的文件名称。
- char *模式:这是一个C字符串(同样是一个字符指针)指针,它指定了文件访问模式。您有相当多的模式选项,可以让您选择以何种方式打开文件。
模式 | 这是什么意思 |
“r” | 只打开一个文件读取。文件必须预先存在。不允许对文件进行任何更改。 |
“w” | 创建一个新文件并写入它。如果已存在具有相同名称的文件,则覆盖它 - 而是删除现有文件并创建一个新文件。 |
“一种” | 附加到文件的末尾。如果文件不存在,请创建一个新的文件并写入它。 |
“r +” | 打开现有文件。允许将读写操作读取和写入此文件。注意 - 文件必须存在先验。 |
“w +” | 创建一个空文件。允许阅读和写作。 |
“a +” | 打开现有文件。允许阅读和写作。 |
请注意,此处的返回值为“文件*”类型。这实际上是我们稍前发言的文件句柄。您应该安全地将此文件句柄保存在变量中。您将需要它来访问文件以获取任何未来的读取或写入操作。
示例:打开和写入文件
#include#include int main() {FILE * file_ptr;File_ptr = fopen ("file1.txt", "w+");流(file_ptr“% s % s % s % d”,“我们”,“是”,“在”,2014年);文件关闭(file_ptr);返回(0);}
在此示例中,我们打开文件“file1.txt”,然后我们使用fprintf函数写入此文件。请注意,我们必须将文件句柄“file_ptr”传递给此函数。这就是它如何知道要写的文件。双引号中的字符串是要写入此文件的文本。那么我们主要做了什么?我们有效地创建了一个文件“file1.txt”,我们已将以下文本写入其中
我们在2014年
要了解有关Fprintf等功能的更多信息,您可能需要在这里看这个C课程。
例如:打开并读取文件
#include#include int main() {FILE * file_ptr;int c;File_ptr = fopen ("file1.txt", "w+");虽然(1){c = fgetc(file_ptr);if(feof(file_ptr)){break;printf(“%c”,c);fclose(file_ptr);返回(0);}
我们在这做了什么?我们在早期的示例中打开文件“file1.txt”。然后在()循环中,我们从文件中读取每个字符,并在屏幕上打印它。我们重复一遍,直到我们到达文件的末尾。相当简单,不是吗?
其他文件操作
正如你在上面的例子中看到的,C有一堆其他的函数,你需要能够从一个文件读取或写入一个文件。让我们快速浏览一些最有用的。
- fclose.():这是fopen()的相反。在处理完文件后,或者至少在退出程序时,应该始终调用这个函数。如果不关闭文件句柄,最终会消耗掉系统内存。
- FPRINGF.():您可能记得常用的Printf()函数。fprintf()是谦逊的表兄弟,你必须用来写入文件。
- FGETC.():再次,如GETC()函数,这个用于从文件中获取或读取字符。
- Feof():此函数返回true,一旦您到达文件结束。请注意,您必须在循环中使用它来实际通过文件到达。
在本教程中,我们刚刚涵盖了最基本的文件操作。还有很多等待探索。你应该是检查我们的中级C航线并为自己试试一些例子!