#include <stdio.h>
#include <stdlib.h>
#define MAX 20
#define MAX_BASE 8
#define ROW 9
#define COLUMN_SCORE 12
#define MAX_SKATER 4
typedef struct{
char name[MAX];
int elements;
float baseval[MAX_BASE];
int score[12][MAX_BASE];
double total_score;
}SKATER;
int getData(SKATER skater[MAX]);
//void calcData(SKATER skater[MAX]);
int main (void)
{
// Global Declarations
SKATER skater[MAX_SKATER];
int num;
// Function calls
num = getData(skater);
//calcData(skater);
return 0;
}
/********************************* getData ************************************
Pre:
Post:
*/
int getData(SKATER skater[MAX_SKATER])
{
// LOcal Declarations
FILE* fpIn;
int i = 0;
int k;
int j;
char buffer[100];
// Statements
if((fpIn = fopen("lab6data.txt","r"))==NULL)
{
printf("File opening error");
system("PAUSE");
exit(100);
}
while(i < MAX_SKATER && fgets(buffer, 100, fpIn))
{
sscanf(buffer,"%*c%19[^]", skater[i].name);
puts(buffer);
for(k = 0; k < MAX_BASE; k++)
{
sscanf(buffer,"%d %f", &skater[i].elements, skater[i].baseval);
for(j = 0; j < COLUMN_SCORE; j++)
{
sscanf(buffer,"%d", &skater[i].score[k][j]);
}
}
i++;
}
system("PAUSE");
fclose(fpIn);
return i;
}
、次の行は要素がベース値に番号を含むすべてのデータを読み取るされていません数字の残りの部分がスコアですが、これは8回繰り返されます。 getdata関数は、puts(バッファ)を試してみると、名前2の他の行を含むデータの最初の3行だけを読み込みます。なぜこの問題が発生するのですか?論理的なエラーがありますか?それは私が唯一あなたが間違っているかについていくつかのヒントを与える宿題があるので函関数は
MENS SHORT PROGRAM//http://www.isufs.org/results/owg2006/OWG06_Men_SP_Scores.pdf
LYSACEK Evan
1 7.5 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
2 10.0 1 2 2 1 1 1 1 2 0 1 1 1
3 3.0 1 2 2 2 1 0 1 2 1 1 1 2
4 3.1 1 1 1 1 1 0 0 0 1 0 1 0
5 1.7-3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
6 2.1 0 0 1 1 1 1 1 1 1 1 1 1
7 3.1 0 0 1 1 0 0 1 1 1 1 1 1
8 3.5 0 1 1 2 1 1 1 1 1 1 0 1
WEIR Johnny
1 7.5 2 2 2 2 1 1 1 1 1 2 1 1
2 10.0 1 1 1 1 2 0 1 1 1 1 2 1
3 3.0 1 1 1 2 1 0 1 1 2 2 2 2
4 3.1 1 2 1 2 1 1 0 0 2 1 1 0
5 5.5 0 -1 0 -1 -1 0 -1 -1 1 -2 -2 -2
6 1.3 1 1 1 2 1 1 1 0 1 1 1 2
7 3.1 0 1 1 1 1 0 0 1 2 1 1 1
8 3.0 -1 1 1 2 1 0 1 0 2 1 -1 1
PLUSHENKO Evgeni
1 13.0 0 2 1 1 1 0 1 0 1 1 1 1
2 7.5 1 2 2 2 2 1 2 1 2 2 2 2
3 6.0 2 1 1 1 1 0 0 2 1 2 1 2
4 2.3 2 1 1 1 1 1 2 1 1 1 1 1
5 3.4 2 2 2 2 1 2 3 3 2 3 2 1
6 2.1 1 1 1 2 2 0 0 0 1 2 1 1
7 3.1 1 0 2 2 1 1 1 2 2 2 2 1
8 3.5 1 1 2 2 1 1 1 1 2 2 1 1
SAVOIE Matthew
1 3.0 0 0 0 1 0 0 0 0 0 0 0 -1
2 7.5 1 2 2 1 1 1 1 1 1 1 2 2
3 9.5 0 1 1 0 0 0 0 0 0 0 1 1
4 3.1 1 1 1 1 1 1 0 0 1 1 0 0
5 1.9 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3 -3
6 2.1 0 0 1 0 1 0 0 1 1 1 1 1
7 3.1 0 0 1 0 0 0 1 1 2 0 2 1
8 3.0 0 0 1 1 1 0 1 1 1 1 1 1
ありがとうございます – KhoaVo