imはこれらの2つのファイルからfile1とfile2を読み込み、2つの変数に情報を保存する際に問題があります。 file1から私はチャンネルの名前を保存したい、そしてfile2から私はユーザーの名前とチャンネルに署名したチャンネルを保存したい。C - ファイルから読み込んで変数に情報を保存する
2つのtypedef構造体(下の図)を作成し、次に2つの変数(下図)を作成し、ファイルを開いてそれらのリストに情報を入れようと考えていました。
私はこのような2D配列を作る別の方法も知っています[100] [100]、これらの両方の解決策の唯一の問題は、 list/arrayにはチャンネルがあります。
これが最善の方法であるかどうかわからない場合や、より簡単で簡単な方法があれば、助けてもらえますか?
これ以上の情報が必要な場合は、ありがとうございます。
Edit1:私は今すぐ持っているfile1コードから読み込んだものを追加しました。これは動作していると思われますが、私の問題/疑問はそれ以上です。またはそれを行うためのより良い/簡単な方法がありますか?ありがとう。
Channel channels[MAX_CHANNELS];
Registration registrations[MAX_REGISTRATIONS];
typedef struct{
char name_channel[20];
int id;
} Channel;
typedef struct{
char username[50];
char name_channel[20];
} Registration;
はFile1:
General
SO
PCD
FBD
File2の:ファイルを読むため
2016-09-26 14:00:01 paul General
2016-09-26 14:01:11 mary SO
2016-09-27 10:33:17 paul SO
2016-09-27 13:32:10 rachel General
2016-09-27 13:32:12 rachel FBD
コード(私はまだFILE1を行っています)。
File *file1 = fopen("channels.txt", "r");
if(file1==NULL){ perror("Reading error: "); exit(1); } ;
char line[100];
int i = 0;
int w=0;
for(w;w<MAX_CHANNELS;w++){
channels[w].id=-1;
strcpy(channels[w].name, "n");
}
while(fgets(line, 100, file1) != NULL){
printf("Line read: %s", line);
line[ strlen(line) -1 ] = 0;
Channel a;
strcpy(a.name , line);
a.id=1;
channels[i]=a;
i++;
}
fclose(canais);
int k;
for(k=0; k<MAX_CHANNELS; k++){
if(channels[k].id!=-1)
printf("testing var with channels: %s\n", channels[k].name);
}
- それは古い時代である - しかし、私はFILE2に始まったhaventけれども、私は、FILE1を読み取るためのコードを追加したファイル –
を読み込むためのコードがどこにあるか、私の質問があればでした – GamerGirl
'line [strlen(line)-1] = 0;'行が '\ n''で終わっていなくても' line'を短縮します(最後の行? 。最後の行の問題だけでなく、埋め込まれたヌル文字を扱うまれな行を扱う 'line [strcspn(line、" \ n ")] = = '\ 0'; – chux