|
char m[200][16];
char time01[60];
double data[200];
if (fscanf(fp1, "%15[^,],%15[^,],%15[^,],%15[^,],%15[^,],%15[^,],%15s",
m[0], m[1], m[2], m[3], m[4], m[5], m[6]) != 7) exit(1);
fprintf(fp2, " time data\n");
for (i = 1; i < line01; i++) {
if (fscanf(fp1, " %59[^,],%lf,%lf,%lf,%lf,%lf,%lf", time01, &data[0],
&data[1], &data[2], &data[3], &data[4], &data[5]) != 7) exit(1);
for (j = 0; j < 6; j++) {
fprintf(fp2, "%s %s %f\n", time01, m[j], data[j]);
}
}
さて、問題です。 (1) char *m[200]; と char m[200][16]; の違いは何か。 (2)
%s で , の直前までの文字列を読み込めるか。 (3) %59[^,] の直前のスペースの役割を説明せよ。 (4) data[0]
は double で、値は不定だが、アドレスも不定か。 (5) 二重の forループに同じ変数を使ってよいか。 (6) printf に
%lf は使えるか。
|