我对文件的分配存在问题。
这是作业:
我被要求编写一个程序的代码,该程序将添加到文本文件中的每一行,即该行的编号。例如,如果原始文件是:
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
但我不知道如何跳过一条线。在我写完第一个数字后,如何将*文件指针前进为下一行的第一个字符?
答案 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;
}