1

ファイルを読み取っているが、構造に保存していないプログラムがあります。データが読み取られたら、プログラムが後でそのデータを使用できるように、データを構造内に保存する必要があります。私はこれを成し遂げる方法を考え出すのにかなりの時間を費やしています。

構造

typedef struct friends_contact {
   char *First_Name;
   char *Last_Name;
   char *home_phone;
   char *cell_phone;
 } fr;

ファイルの読み込み

void ReadFile(fr *friends, int *counter, char buffer[], FILE *read) {
  fseek(read, 0, SEEK_SET);      
  while (fscanf(read, "%s", buffer) != EOF) {
    friends[*counter].First_Name = malloc(BUFFSIZE * strlen(buffer));
     strcpy(friends[*counter].First_Name, buffer);

  }  

}

必要に応じて、より多くの情報を提供できます。後で呼び出すことができるように、情報が構造内に保存されていない理由を理解したいだけです。

4

2 に答える 2

0

char配列にスペースを割り当ててからコピーするために使用するコードは理にかなっていますが、while()サイクルで2つのいずれかが発生する可能性があります.条件が即座に評価されfalseて何もコピーされないか、fscanfが書き込むまで何度も繰り返します.バッファリングする空の文字列で、これにより の内容が上書きされfriends[*counter].First_Nameます。*counterwhile()

于 2012-11-19T07:55:35.380 に答える