使用文件C语言时如何跳过数据

时间:2013-05-13 17:07:40

标签: c file

我对文件的分配存在问题。

这是作业:

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

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

但我不知道如何跳过一条线。在我写完第一个数字后,如何将*文件指针前进为下一行的第一个字符?

2 个答案:

答案 0 :(得分:2)

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

使用fgets读取输入文件的每一行并启动循环计数,然后使用count和data写入输出文件。

#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;
}

答案 1 :(得分:1)

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

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

    if (...)
        continue;

}