条件が一致した場合に行の最後に新しい情報を追加する必要があるCコードを書いています。
FILE *file = fopen(fileName, "r+");
//read every line if line!=NULL
while (fgets(line, LINE_SIZE, file)!= NULL){
//split the line by sep
split(line, ',', fields);
fprintf(file,",%d,%d,%d",D,F,G);
}
一致した情報を書き込もうとするコードです。ただし、行頭に情報を書き込みます。「ファイル」ポインタを行末に移動することは可能ですか?
おそらく、さらにいくつかの手順に従う必要があります
既存のファイルと一緒に一時ファイルを開きます
FILE *file = fopen(fileName, "r");
FILE *tmpFile = fopen(tempFileName, "a+" );
既存のファイルから行を取得し、トリミングします。次の行はコンマの後にフィールドを追加します。おそらく、余分なフィールドのコンマ区切りの文字列を作成します。
while (fgets(line, LINE_SIZE, file)!= NULL){
改行を削除し、パラメータを追加します
if( line[ strlen(line) - 1 ] == '\n' )
line[ strlen(line) - 1 ] = '\0';
fprintf(tmpFile,"%s,%s\n",line, your_field); // Write to temporary file
}
古いファイルのリンク解除を削除すると、おそらく便利です
man -a unlink
次に、一時ファイルの名前を元のファイルに変更します
man -a rename
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加