標準入力からファイル名を入力して、そのファイルのデータを読み込み、ポインタ配列にデータを格納します。その後、別のファイルに先ほど格納したデータを書き込み、出力できれば成功です。
次の4行が読み込むデータです。
JZK-30 Jizake_tsumeawase 4500
BSP-15 Body_soap_set 3000
BT-200 Bath_towel_set 2500
TEA-20 Koutya_tsumeawase 5000
そして以下のコードを作成したのですが、42行目以降のアロー演算子を使用した行に
"expected identifier before '(' token"のエラーが表示されます。しかし、何が足りないのかわかりません。。。ご教授頂けると助かります!
c言語
1#include<stdio.h> 2#include <stdlib.h> 3#include<string.h> 4#define MAX 4 5 6typedef struct{ 7 char *code[MAX]; 8 char *name[MAX]; 9 int *price[MAX]; 10}gift; 11 12int main(void) 13{ 14 int num,i,len; 15 char ref[256]; //標準入力で入れるファイル名 16 int fprice[MAX][256]; //ファイルから読み込むときの一時保管場所 17 char fname[MAX][256], fcode[MAX][256]; //ファイルから読み込むときの一時保管場所 18 19 FILE *fp; //読み込み先のファイル 20 FILE *file; //書き込み先のファイル 21 22 gift gifts; 23 24 25 printf("ファイル名を指定して下さい:"); 26 scanf("%s",ref); 27 28 for(i=0;i<MAX;i++){ 29 30 fp=fopen(ref,"r"); 31 if(fp==NULL){ 32 printf("%s ファイルが開けません\n",ref); 33 exit(1); 34 } 35 36//一時的に格納します 37 fscanf(fp,"%s %s %d",fcode[i],fname[i],fprice[i]); 38 39//次に動的にそれぞれのメモリを確保します 40 gifts->(code+i)=(*char)malloc(sizeof(char)*strlen(fcode[i]));//(ココから42行目です)error発生 41 //以降のアロー演算子を使用した所でエラーが起こっています 42 gifts->(name+i)=(*char)malloc(sizeof(char)*strlen(fname[i]));//error発生 43 gifts->(price+i)=(*int)malloc(sizeof(int)*strlen(fprice[i]));//error発生 44 45//コピーします 46 srcpy(gifts->(code+i),fcode[i]); //error発生 47 srcpy(gifts->(name+i),fname[i]); //error発生 48 srcpy(gifts->(price+i),fprice[i]); //error発生 49 50//書き込みます 51 file=fopen("present.txt","w"); 52 fprintf(file,"%s\n%s\n%d\n",gifts->(code+i),gifts->(name+i),gifts->(price+i)); //error発生 53 54 free(gifts->(code+i)); //error発生 55 free(gifts->(name+i)); //error発生 56 free(gifts->(price+i)); //error発生 57 } 58 59 puts("表示形式変換後ファイルに出力しました。"); 60 61 fclose(file); 62 fclose(fp); 63 64 return 0; 65} 66
回答1件
あなたの回答
tips
プレビュー