トップページ > プログラム > 2015年01月10日 > lyLN6stF

書き込み順位&時間帯一覧

17 位/52 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000010000000000000001



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C言語なら俺に聞け(入門編)Part 127 [転載禁止]©2ch.net

書き込みレス一覧

C言語なら俺に聞け(入門編)Part 127 [転載禁止]©2ch.net
587 :デフォルトの名無しさん[sage]:2015/01/10(土) 08:01:51.57 ID:lyLN6stF
>>585
/* 配列やポインタの使い方も覚えないと。とりあえず答え書いていく。検証してないから文句はなし。駄目だったら自分で直すかまた聞く。 */
FILE *fp;
int rCnt, rTotal, bCnt, gTotal, i, ret;
char s[6];

fp = fopen("color.txt", "r");
if (fp == NULL) {
perror(NULL); return -1;
}

while ((ret = fscanf(fp, "%5[^0-9]%d\n", s, &i)) == 2) {
if (!strcmp(s, "red")) {
rCnt++; rTotal += i;
} else if (!strcmp(s, "blue"))
bCnt++;
else if (!strcmp(s, "green"))
gTotal += i;
else {
printf("%s: illegal name\n", s); return -1;
}
}

fclose(fp);

/* EOFはエラーの場合にも返される。区別したいのならferror等を用いること。 EOFでも2でもないということは、要素が2個当てはまらなかった、つまり不正な書式ということ。 */
if (ret != EOF) {
printf("illegal format\n"); return -1;
}

printf("aka=%d\nao=%d\nmidori=%d\n", rTotal / rCnt, bCnt, gTotal);
return 0;


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。