题目

编写程序以追加模式(Append)打开一个日志文件,向文件末尾追加写入一行新的日志记录并换行保存。

输入格式:输入一行待追加的日志文本字符串。

输出格式:写入成功输出 done。

数据范围与约定:单行日志长度不超过 256 字符。

思路与算法

1. 追加模式 "a"
使用 fopen(filepath, "a") 打开文件。若文件不存在则创建,若文件已存在则自动将文件写指针移动到末尾,不会清空覆盖原有历史内容。

2. 格式化写入
使用 fprintf(fp, "%s\n", line); 写入文本并在末尾追加换行,写完后及时 fclose(fp) 刷盘并关闭。

完整程序

#include <stdio.h>
#include <string.h>

int main(void)
{
    char line[512];
    if (!fgets(line, sizeof line, stdin)) {
        return 1;
    }

    // "a" 追加模式打开:写入内容始终自动追加在文件末尾,不覆盖原数据
    FILE *fp = fopen("log.txt", "a");
    if (!fp) {
        return 1;
    }

    fputs(line, fp);
    // 防御处理:若末尾无换行则补上换行符
    if (line[strlen(line) - 1] != '\n') {
        fputc('\n', fp);
    }

    fclose(fp);
    printf("appended\n");
    return 0;
}