假設我在C以下代碼:分割ASCII文本文件
FILE* a=fopen("myfile.txt","r");
FILE* b,c;
有一個在「A」,它指定在這裏我要分割的地方分隔符線;我想把'a'的內容分成'b'和'c'。我想在不創建任何其他文件的情況下執行此操作。
另外,我希望通過創建一個指向'FILE *'的指針數組來動態地實現這一點。所以分隔線的數量是任意的。
對於這種情況,假定分隔線是任何具有字符串'delim'的行。
假設我在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