0

こんにちは、コンテンツを変更せずにすべての行にテキストを追加するテキストファイルを更新できるかどうか疑問に思っています。このようなテキストファイルがあるとします。

A
B
C
D
E
F
G

このように更新したい(すべての行の最初の文字の近くに別の文字を追加する)

A   H
B   I
C   J
D   K
E   L
F   M
G   N

テキストファイルを追加モードで開き、fseek()関数をさまざまな方法で使用すると、データを行に追加できても、最後からのデータが毎回失われます。

問題を明確に理解していただければ幸いです。お役に立てれば幸いです。とにかくありがとう。

4

3 に答える 3

2

C および POSIX ファイル操作を介してアクセスされるファイル モデルは、ファイルを一連のバイトとして表し、挿入操作はありません。既存のバイトを上書きする (それらを置き換える) か、新しいバイトを最後に追加するか、ファイルを切り捨てることしかできません。

必要な出力を作成するには、新しいファイルに書き込む必要があります。入力ファイルの読み取りが完了したら、新しいファイルを古いファイルのパスに移動して、古いファイルを新しい出力に置き換えることができます。

于 2012-10-09T18:28:15.437 に答える
1

最善の策は、単純にすべてのデータをメモリに読み込み、目的の形式でファイルを書き出すことです。読みやすさと保守性のために、少し効率を犠牲にしたほうがよい場合もあります。

于 2012-10-09T18:30:08.263 に答える
0

テキスト ファイルの「行」の概念は、ファイルに改行文字 (「\n」) があることを意味します。

テキスト ファイルの行の最初の要素の後にデータを追加するには、後に追加する文字を見つけ、その文字と次の改行文字の間にデータを挿入します。

于 2012-10-09T17:59:06.150 に答える