读写操作
在C语言中,文件的读写操作是如何进行的?
在 C 语言中,可以使用标准库中的文件 I/O 函数来进行文件的读写操作。以下是一些基本的文件读写操作示例:
1. 打开文件
使用 fopen() 函数打开文件,并获取一个文件指针。如果打开成功,该函数返回一个 FILE 指针,否则返回 NULL 。
其中, example.txt 是要打开的文件名, r 表示以只读模式打开文件。
2. 读取文件
使用 fgets() 函数从文件中读取字符串。下面是一个示例:
上述代码将从文件中读取每一行,并打印到控制台。 fgets() 函数会自动在每行末尾添加一个换行符。
3. 写入文件
使用 fprintf() 函数将数据写入文件。下面是一个示例:
上述代码将字符串 "Hello, world!" 写入文件。
4. 关闭文件
使用 fclose() 函数关闭文件,释放相关资源。下面是一个示例:
上述代码将关闭文件。如果关闭文件时发生错误,会打印错误信息并返回非零值。
除了上述基本的文件读写操作,C 语言还提供了其他更高级的文件操作功能,例如:以字符形式读写文件、以字符串的形式读写文件、以数据块的形式读写文件等。
如何判断文件的读取是否已经结束?
在 C 语言中,可以使用 feof 函数来检测当前文件流上的文件结束标识,判断是否读到了文件结尾。其原型为:
【参数】stream 为文件流指针。
【返回值】检测到文件结束标识返回1,否则返回0。
文件结束标识一般由上次的读写操作来设置,当然也可以手动设置。当文件内部的位置指针指向文件结束时,并不会立即设置 FILE 结构中的文件结束标识,只有再执行一次读文件操作,才会设置结束标志,此后调用 feof 才会返回为真。文件结束标识可以由 clearerr、rewind、fseek、fsetpos 和 freopen 函数清除;如果这时位置指针未被重置,那么将在下次 I/O 操作时进行设置。
注意,feof 与 EOF 不同:feof 是函数,用来检测文件的结束;EOF 是 End Of File 的缩写,是 C 语言中标准库中定义的宏,定义为:#define EOF (-1)。EOF 的值为-1,是 int 类型数据,在32位系统中,可以表示为0xFFFFFFFF;EOF 不但能表示读文件到了结尾这一状态,它还能表示 I/O 操作中的读、写错误(可以用 ferror 来检测)以及其它一些关联操作的错误状态。