c - 将内容写入新文件时如何在每行开头添加行号

标签 c visual-studio-2010

我有以下代码,

我正在尝试将两个文件的内容合并到第三个文件中,并且我想在第三个文件中每行的开头添加行号。

我已将两个文件的内容合并到第三个文件中,请在下面找到代码,但我需要在每行的开头添加行号,请帮助我。

# include <stdio.h>
# include <conio.h>
# include <process.h>

void main()
{
    FILE *f[2],*fp,*f3;
    char ch;
    int i;
    char file[2][20]={"E:/Structure.txt","E:/Text.txt"};
    char thirdfile[20];
    for(i=0;i<2;i++)
    {
        fp=fopen(file[i],"r");
        f[i]=fp;
        if(fp==NULL)
        {
            printf("Cannot open file");
            exit(1);
        }
    }

    printf("Enter the file to combine contents:");
    scanf("%s",thirdfile);
    f3=fopen(thirdfile,"w");
    if(f3==NULL)
    {
        perror(thirdfile);
        exit(1);
    }

    for(i=0;i<2;i++)
    {
        while(!feof(f[i]))
        {
            ch=fgetc(f[i]);
            fputc(ch,f3);
        }
    }
    fcloseall();
    getche();
}

最佳答案

int line_number = 0;

for(i=0;i<2;i++)
{
    int start_of_line = 1;

    while( (ch = fgetc(f[i])) != EOF )
    {
        if (start_of_line)
            fprintf(f3, "%d: ", ++line_number);  /* put line number in output file */

        fputc(ch,f3);
        start_of_line = ch == '\n';
    }
}

关于c - 将内容写入新文件时如何在每行开头添加行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20625718/

相关文章:

c - 了解快速求幂函数

c - C语言中枚举的使用?

c - 为什么我的 while 循环条件不起作用?

visual-studio - 使用 MbUnit/Gallio 3.1 进行调试

c++ - 什么时候最终 exe 的名称可以与 Visual C++ 2010 中的解决方案名称不同?

在我的 Mac 上使用 OpenMP 编译 C

c - 'fopen' 将如何解释一个容量大于它包含的字符串的 'char[]'?

.net - 使用反射和混淆处理错误的建议

visual-studio-2010 - 如何在 Visual Studio 中重定位源文件?

c++ - 更正 Visual C++ __FILE__ 宏的大小写