在C中拆分ASCII文本文件

时间:2012-04-22 21:43:38

标签: c file split fopen

假设我在C中有以下代码:

FILE* a=fopen("myfile.txt","r");
FILE* b,c;

'a'中有一个分隔线,用于指定我要分割的位置;我想把'a'的内容分成'b'和'c'。我想这样做而不创建任何其他文件。

后来,我想通过创建指向'FILE *'的指针数组来动态地执行此操作。因此分隔符行的数量将是任意的。

对于这种情况,假设分隔符行是任何具有字符串'delim'的行。

1 个答案:

答案 0 :(得分:2)

概念可能是:

1)fopen() INFILE和(第一个)OUTFILE

2)虽然你可以,fgets()从INFILE行和strncmp()行到分隔符

2.a)未找到分隔符:fputs()到OUTFILE的行

2.b)分隔符找到:fclose() OUTFILE和fopen()下一个OUTFILE

2.c)文件结束:中断循环

3)fclose() INFILE和OUTFILE

或者这样:

1)fopen() INFILE

2)fseek()到流的末尾并使用ftell()获取文件位置,让我们调用此N

3)rewind()流和fread() N字节从中传入缓冲区。

4)fclose() INFILE

5)虽然你可以,strstr()你的缓冲区中的分隔符和fwrite()之间的数据块到OUTFILEs