「Applicat」という単語を検索し、行全体を置き換えるコードがあります。現在、1行ではなく2行を検索して置換しようとしていますが、少し問題があります。テキスト ファイルの例を次に示します。
名前: 1234
申請者: ft_link
日付: 今日
スクリプトでテキスト ファイルを次のように変更できるようにしたいと考えています。
名前: 5678
申請者:なし
日付: 明日
これまでのところ私のコードは機能しますが、Applicat 行が複数回複製されます...ここで何が間違っていますか? 前もって感謝します!
これが私のコードです:
FILE *input = fopen(buffer1, "r"); /* open file to read */
FILE *output = fopen("temp.txt", "w");
char buffer[512];
while (fgets(buffer, sizeof(buffer), input) != NULL)
{
static const char text_to_find[] = "Applicat:"; /* String to search for */
static const char text_to_replace[] = "Applicat: None\n"; /* Replacement string */
static const char text_to_find2[] = "Name"; /* String to search for */
static const char text_to_replace2[] = "Name: 5678\n"; /* Replacement string */
char *pos = strstr(buffer, text_to_find);
if (pos != NULL)
{
fputs(text_to_replace, output);
}
char *pos2 = strstr(buffer, text_to_find2);
if (pos2 != NULL)
{
fputs(text_to_replace2, output);
}
else
fputs(buffer, output);
}