推荐答案
-- -------------------- ---- ------- -------- --------- --- ------ - ---- ------ ---- ------------ -- ---- ---- - -------------------- ------ -- ----- -- ----- - ------------- ------- ------- ------ -- - -- -- ----- ------ -- -------------- --------------- ----- -- ----- - ------------ ---- ----- ---- -------- - -- -- ----- ------ ------------- -------- ------ -- ---- ------------- ------ -- -
本题详细解读
fgets 函数
fgets
函数用于从指定的文件流中读取一行字符串。其函数原型如下:
char *fgets(char *str, int n, FILE *stream);
str
:指向一个字符数组的指针,用于存储读取的字符串。n
:要读取的最大字符数(包括结尾的空字符\0
)。stream
:指向文件流的指针,通常是通过fopen
打开的文件。
fgets
会从 stream
中读取最多 n-1
个字符,并在读取的字符串末尾自动添加一个空字符 \0
。如果遇到换行符 \n
或文件结束符 EOF
,读取会提前结束。
fputs 函数
fputs
函数用于将字符串写入指定的文件流。其函数原型如下:
int fputs(const char *str, FILE *stream);
str
:要写入的字符串。stream
:指向文件流的指针,通常是通过fopen
打开的文件。
fputs
会将 str
指向的字符串写入到 stream
中,不包括字符串末尾的空字符 \0
。如果写入成功,返回非负值;如果发生错误,返回 EOF
。
示例代码解析
- 打开文件:使用
fopen
打开文件example.txt
,模式为"r+"
,表示以读写模式打开文件。 - 读取文件内容:使用
fgets
从文件中读取最多 99 个字符(因为buffer
的大小为 100),并将读取的内容存储在buffer
中。 - 写入文件内容:使用
fputs
将字符串"Hello, World!"
写入文件。 - 关闭文件:使用
fclose
关闭文件,释放资源。
注意事项
- 在使用
fgets
和fputs
时,确保文件已成功打开,否则可能会导致程序崩溃或未定义行为。 fgets
读取的字符串可能包含换行符\n
,因此在处理读取的字符串时需要注意。fputs
不会自动添加换行符,如果需要换行,需手动添加\n
。