c语言程序,给源程序添加行号

2025-02-22 08:54:45
推荐回答(2个)
回答1:

#include

void main(void)
{
FILE *fpIn; // 输入文件的指针

FILE *fpOut; // 输出文件的指针

char str[120]; // 用来存储从文件中读取出的”一行“字符串信息

int row = 1;

fpIn = fopen("data5612.cpp", "r"); // 以只读和文本格式打开data5612.cpp,这里的文件名无所谓大小写

fpOut = fopen("data5612.txt", "w"); // 以创建方式(也叫写方式)打开data5612.txt文件

fgets(str, 81, fpIn); // 从文件中读取一行信息,保存到str数组中。这里要注意的是这个81,一般情况下,编写文本格式文件的人,都习惯遇到行尾就敲回车,所以,一般情况下,文本文件一行最多80个字符。如果,一行不够80个字符,这个函数会自动只读到'\n'就结束了。
while(!feof(fpIn)) // 判断上一次fgets()是否正常(即,没有遇到文件尾部)

{

fprintf(fpOut, "%04d %s\n", row, str); // 在读入的每一行信息前,加入0000到9999的行号(应该够用了吧),呵呵呵呵

row++; // 行号加一

fgets(str, 81, fpIn); // 读取下一行

}

fclose(fpIn); // 关闭文件

fclose(fpOut);

}

程序已验证,木有问题。

回答2:

#include 

int main(void)
{
    int n = 1;
    char buf[1024];
    FILE *fp, *fp1;

    /* 打开文件,文件名必须大写 */
    fp= fopen("DATA5612.CPP", "r");
    if (!fp) {
        printf("No 'DATA5612.CPP' found.\n");
        return -1;
    }

    fp1= fopen("DATA5612.TXT", "w");
    if (!fp) {
        printf("No 'DATA5612.TXT' found.\n");
        return -1;
    }

    /* 逐行读取 */
    while (fgets(buf, 1024, fp) > 0)
        fprintf(fp1, "%d. %s", n++, buf);

    fclose(fp);
    fclose(fp1);
    return 0;
}