1時間前ほどに質問したのですが、また質問させていただきます。
間違えて解決済みにしてしまったのでもう一度質問します
下記のようなデータファイルがあるとします。
Meibo.txt
3
Hanako M 16 50
Muku M 17 60
Taro F 20 70
まずはじめに1行目の3という数字を読み込んで、三回で下の文字を表示させたいです。
meibo(int *b,char *filename){
FILE *fp;
char keep1[10];
char keep2[100];
int i;
int count;
if((fp=fopen(filename,"r"))==NULL){ printf("File%s doesnt exist \n",filename); exit(1); } fgets(keep1,10,fp); sscanf(keep1,"%d",&b); count=atoi(b); for(i=0;i<count;i++){ fgets(keep2,100,fp);
make_student(keep2);
}
fclose(fp);
}
ここでエラーメッセージはこれです
warning: format ‘%d’ expects argument of type ‘int *’, but argument 3 has type ‘int **’ [-Wformat=]
sscanf(keep1,"%d",&b);
^
warning: passing argument 1 of ‘atoi’ from incompatible pointer type [enabled by default]
count=atoi(b);
^
In file included from
/usr/include/stdlib.h:147:12: note: expected ‘const char *’ but argument is of type ‘int *’
extern int atoi (const char *__nptr)
^
こんな感じでつくっています
ファイルではfgetsで読み込んだ文字列を配列に格納すると習いましたのでこんな感じで作りましたが
最初の一行はint型にキャストしたいです。そのやり方がわかりません。
atoi関数をつかってみたりしたのですがうまくいきません
おしえてください
表示させるのはmake_student関数のほうですべて表示できます。
回答1件
あなたの回答
tips
プレビュー