テキストファイルから構造体にデータを入れたいけどエラーが出る。
C:\MinGW\users\chap09\kadai>gcc -I. -o test test.c -Wall
test.c: In function 'main':
test.c:22:22: warning: unknown conversion type character 'U' in format [-
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
^
test.c:22:24: warning: unknown conversion type character '!' in format [-
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
^
test.c:22:26: warning: unknown conversion type character '$' in format [-
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
^
test.c:22:28: warning: unknown conversion type character 'k' in format [-
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
^
test.c:22:33: warning: unknown conversion type character '!' in format [-
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
^
test.c:22:36: warning: unknown conversion type character 'W' in format [-
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
^
test.c:22:38: warning: format '%s' expects a matching 'char ' argument [
printf( "$B%U%!%$%k$,%!<%W%s$G$-$^$;$s(J\n" );
テキストファイルはstarsdata.txt を下記とすると
Brad_Pitt 183.2 73.4
Tom_Cruise 170.1 67.2
Johnny_Depp 178.2 70.5
Will_Smith 188.0 78.3
Bruce_Willis 184.0 78.3
です。どうしたらいいでしょうか。よろしくおねがいします。
実行結果を
The tallest is Will_Smith(188.0cm)としたいのですが。
コード #include <stdio.h> #include <stdlib.h> #define MAXCNT 10 typedef struct { // 構造体の宣言 char name[16]; float height; float weight; } shape_t; int main() { int i, mt; FILE *fp; shape_t stars[MAXCNT]; // 構造体配列の宣言 if( (fp = fopen( "starsdata.txt", "r" )) == NULL ) { printf( "ファイルがオープンできません\n" ); exit( 1 ); } for( i = 0; i < MAXCNT; i++ ) { if( fscanf( fp, "%s %f %f\n" // 構造体配列への読み込み , stars[i].name, &stars[i].height, &stars[i].weight ) != 3 ) break; } fclose( fp ); // 本来なら、入力したデータを関数などに渡して使います // たとえば一番背の高い人を調べる関数 // int whoIsTallest( shape_t stars[], int num ) など // 関数との受け渡しは次回のTipsで ... mt = 3; // ここでは3が返されたことにします printf( "The tallest is %s(%.1fcm)\n", stars[mt].name, stars[mt].height ); }
^
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/17 02:35
退会済みユーザー
2017/09/17 02:49