分割ASCII文本文件
问题描述:
假设我在C以下代码:分割ASCII文本文件
FILE* a=fopen("myfile.txt","r");
FILE* b,c;
有一个在“A”,它指定在这里我要分割的地方分隔符线;我想把'a'的内容分成'b'和'c'。我想在不创建任何其他文件的情况下执行此操作。
另外,我希望通过创建一个指向'FILE *'的指针数组来动态地实现这一点。所以分隔线的数量是任意的。
对于这种情况,假定分隔线是任何具有字符串'delim'的行。
答
的概念可以是:
1)fopen()
INFILE和(第一)OUTFILE
2),同时也可以,从INFILE fgets()
线和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
没什么,因为我很少有想法。我可能猜测FILE *可以像char *一样被编址,并且像字符串一样被操纵。 – hosolmaz 2012-04-22 21:50:11
我可以在不打开它的情况下将其打印到FILE *中吗? – hosolmaz 2012-04-22 21:51:26
不,一个'(FILE *)'不是一个字符串,不能像一个一样操作,并且必须打开一个文件才能操作。 (其实这听起来像你正在考虑'mmap',但是还没有想到它。) – geekosaur 2012-04-22 21:55:59