テキストファイルの特定の行を削除するプログラムのコーディングを手伝ってもらえますか。
私は使用することを計画しています:
fgetsはテキストファイルから行をキャプチャして配列に格納しますが、fgetsはどのように行を配列に格納するのか混乱しました(行をキャプチャして最初のインデックスに格納し、次に行をキャプチャするときにこれは次のインデックスに保存されますか、それとも配列の最初のインデックスを上書きしますか?)
行が異なるインデックスに格納されている場合は、ユーザーの入力をキャプチャされたfgetsの行と比較する条件があり、それが等しい場合は、行をスキップして、ファイルの終わりに達するまでルールを実行します。
次に、このfclose(stream)のようにテキストファイルを閉じ、「wt」として再度開いて、ファイルに書き込まれたすべてを上書きします。
私は正しいロジックを持っていますか...またはあなたはより良い解決策を提案することができます...fgetsがどのように行を配列に格納するかを理解するのを手伝ってくれることを願っています...
ところで、これは私がテストのために試しているコードです:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct studentinfo{
char id[8];
char name[30];
char course[5];
}s1;
int main(void){
FILE *stream = NULL;
stream = fopen("studentinfo.txt", "rt");
char arr[100];
int i=0;
while(!feof(stream)){
fgets(arr, 100, stream);
printf("%s", arr);
}
fclose(stream);
/*planning to reopen the stream but will change "rt" to "wt"*/
getch();
}