C 语言中 fgets 和 fputs 函数的用法?

推荐答案

-- -------------------- ---- -------
-------- ---------

--- ------ -
    ---- ------
    ---- ------------

    -- ----
    ---- - -------------------- ------
    -- ----- -- ----- -
        ------------- ------- -------
        ------ --
    -

    -- -- ----- ------
    -- -------------- --------------- ----- -- ----- -
        ------------ ---- ----- ---- --------
    -

    -- -- ----- ------
    ------------- -------- ------

    -- ----
    -------------

    ------ --
-

本题详细解读

fgets 函数

fgets 函数用于从指定的文件流中读取一行字符串。其函数原型如下:

  • str:指向一个字符数组的指针,用于存储读取的字符串。
  • n:要读取的最大字符数(包括结尾的空字符 \0)。
  • stream:指向文件流的指针,通常是通过 fopen 打开的文件。

fgets 会从 stream 中读取最多 n-1 个字符,并在读取的字符串末尾自动添加一个空字符 \0。如果遇到换行符 \n 或文件结束符 EOF,读取会提前结束。

fputs 函数

fputs 函数用于将字符串写入指定的文件流。其函数原型如下:

  • str:要写入的字符串。
  • stream:指向文件流的指针,通常是通过 fopen 打开的文件。

fputs 会将 str 指向的字符串写入到 stream 中,不包括字符串末尾的空字符 \0。如果写入成功,返回非负值;如果发生错误,返回 EOF

示例代码解析

  1. 打开文件:使用 fopen 打开文件 example.txt,模式为 "r+",表示以读写模式打开文件。
  2. 读取文件内容:使用 fgets 从文件中读取最多 99 个字符(因为 buffer 的大小为 100),并将读取的内容存储在 buffer 中。
  3. 写入文件内容:使用 fputs 将字符串 "Hello, World!" 写入文件。
  4. 关闭文件:使用 fclose 关闭文件,释放资源。

注意事项

  • 在使用 fgetsfputs 时,确保文件已成功打开,否则可能会导致程序崩溃或未定义行为。
  • fgets 读取的字符串可能包含换行符 \n,因此在处理读取的字符串时需要注意。
  • fputs 不会自动添加换行符,如果需要换行,需手动添加 \n
纠错
反馈