c - 将相同的文本添加到 C 文件中每一行的末尾

标签 c file-io io printf

我想在文件的每一行末尾添加一个 -1。例如,file.txt 是

1 4 5
2 5 9
3 5 6

但会变成

1 4 5 -1
2 5 9 -1
3 5 6 -1

我正在弄清楚如何从 C 向文件添加一般文本,但我无法弄清楚如何向文件中的每一行添加相同的文本,并确保新行字符位于新的最后一个字符之后行中的字符(在本例中为 -1)。

这是我尝试过的:

FILE *f = fopen("file.txt", "w");
if (f == NULL)
{
    printf("Error opening file!\n");
    exit(1);
}

/* print some text */
const char *text = " -1";
fprintf(f, "%s\n", text);

非常感谢任何建议!

最佳答案

我可以使用文本编辑器将 -1 添加到每一行,方法是将 "\r\n" 替换为 "-1\r\n" 或类似文件,具体取决于文件的 eol 格式。

或者以编程方式创建一个新文件,如下所示:

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

int main()
{
    FILE *fr, *fw;
    char buffer[10000];
    fr = fopen("file.txt","rt");
    if (fr == NULL) {
        printf("Error opening input file\n");
        return 1;
    }
    fw = fopen("file1.txt","wt");
    if (fw==NULL) {
        printf("Error opening output file\n");
        fclose (fr);
        return 1;
    }
    while (fgets(buffer, 10000, fr) != NULL) {
        buffer [ strcspn(buffer, "\r\n") ] = 0;   // remove trailing newline etc
        fprintf(fw, "%s -1\n", buffer);
    }
    fclose(fw);
    fclose(fr);
    return 0;
}

输出文件:

1 4 5 -1
2 5 9 -1
3 5 6 -1

关于c - 将相同的文本添加到 C 文件中每一行的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29233864/

相关文章:

为 CPU Arch 交叉编译或编译 native

objective-c - 从 fwrite 参数获取数据数组的内容 - 使用 Objective-C 打印数据

java - 是否有用于 mp4 文件的 Java API?

java - 我有一个程序应该将一些数据写入文件,但它没有,我不知道为什么

java - 自动注释 Java 类的程序/脚本

c++ - 将多维写入 CSV 文件

用 C 单击网页上的按钮

c - 简单C程序中有关字符指针的内存问题

C++结构循环错误

java - Java 中的缓冲区大小