次の入力ファイルがあります。
WO98EKOYMPCAUEWT0 Honda Civic 2011 4
7W32UAERZFBCB3S6P Chevrolet Tahoe 2011 6
DNU7XQO8LLA9I6YFX Toyota Tercel 2012 4
DNU7XQO8LLA9I6YFX Toyota Tercel 2012 4
DNU7XQO8LLA9I6YFX Toyota Tercel 2012 4
7W32UAERZFBCB3S6P Chevrolet Tahoe 2011 6
これは実際に私たちに与えられた仕事であり、私は数日間苦労して結果を出していません.
各行を読み取り、2 番目、3 番目、4 番目の値を構造体に入れます。
その後、上記の 3 つの列に基づく出現回数である新しい列を追加します。
データを 2 番目、3 番目、4 番目で並べ替えます。そしてそれらをファイルに出力します。
これまでの私のコードは次のとおりです。
struct Car
{
char *CarMake;
char *CarModel;
char *CarMakeYear;
int Occurances;
};
int main(int argc, char *argv[])
{
//File related
FILE *inputFile, *outputFile;
char fileName[] = "";
//Struct related
int carCounter = 0;
struct Car cars[50];
struct Car car;
car.CarMake = (char*)malloc( 200 *sizeof(char));
car.CarMakeYear = (char*)malloc( 200 *sizeof(char));
car.CarModel = (char*)malloc( 200 *sizeof(char));
car.Occurances = 0;
printf("Please enter file name:", fileName);
scanf("%s",fileName);
inputFile = fopen(fileName,"r");
while(fscanf(inputFile, "%*s %s %s %s %*s\n",car.CarMake, car.CarModel,car.CarMakeYear ) != EOF)
{
cars[carCounter].CarMake = car.CarMake;
carCounter++;
}
fclose(inputFile);
int i=0;
for(i=0;i<6;i++)
printf("%s %s %s \n", cars[i].CarMake, cars[i].CarModel,cars[i].CarMakeYear);
system("PAUSE");
return 0;
}
上記の printf は最後の配列値を取得し、印刷を続けます。つまり、機能していません。誰でもこれを手伝ってください、私は提出するまで真夜中まで持っています。