题目
编写程序以追加模式(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;
}