0

我对有关文件的分配有疑问。

这是作业:

我被要求为一个程序编写一个代码,该程序将添加到文本文件中的每一行,该行的编号。例如,如果原始文件是:

Hi my name is Oria
I study programming
I love dogs
I use stackoverflow

将改为:

1 Hi my name is Oria
2 I study programming
3 I love dogs
4 I use stackoverflow

但我不知道如何跳过一行。写完第一个数字后,如何将 *file 指针推进到下一行的第一个字符?

4

2 回答 2

2

这可以通过将其写入另一个文件来完成。

使用 fgets 读取输入文件的每一行并开始循环计数,然后将计数和数据写入输出文件。

#include <stdio.h>
int main()
{
FILE *src, *dest;
char buf[64];
int i = 0;
src = fopen("in.txt", "r");
dest = fopen("out.txt", "w");
while(fgets(buf, 64, src) != NULL){
    i++;
    fprintf(dest, "%d %s", i,buf);
}
fclose(src);
fclose(dest);
return 0;
}
于 2013-05-13T17:38:24.157 回答
1

使用 getline(3) 读取循环中的行。在循环中,您可以随意跳过行。

while (1) {
    ....
    getline();

    if (...)
        continue;

}
于 2013-05-13T17:11:56.467 回答