-1

所以我们正在尝试创建一个计算来比较用户给我们的电影评分。我们已将其分成不同的团队用于我们的课程项目。我的任务是创建从不同团队的文件输出中读取的计算,然后使用我提出的计算创建输出。从文件中读取很好,但是我无法弄清楚如何使用该信息进行计算。

这是我的问题领域:

    long int similarity;
#define MAXLINESIZE 80
FILE* myTextFile;
char ch;
char lineBuf[MAXLINESIZE] = { '\0' };
char *person [10] = { '\0' };
char *movie [10] = { '\0' };
char *rating [10] = { '\0' };


myTextFile = fopen("C:\\users\\owner\\desktop\\movieRating.txt", "r");

if(myTextFile == NULL){
    printf("Failed");
}


fgets (lineBuf, MAXLINESIZE - 1, myTextFile);

while ( !feof (myTextFile) && !ferror (myTextFile) ) {
    sscanf ( lineBuf, "%s %s %s", person, movie, rating);
    printf("\n person = %s \n movie = %s \n rating = %s \n", person,movie,rating);
    fgets (lineBuf, MAXLINESIZE - 1, myTextFile);

}
long int per = atoi(person[10]);
long int mov = atoi(movie[10]);
long int rat = atoi(rating[10]);
{
similarity = (per + rat) * (per + rat);
return (similarity);
printf("\n Similarity is %i\n", similarity);
getchar ();
}

getchar();
getchar ();
return 0;

}

希望我已经正确解释了这一点

4

1 回答 1

3

如果您的问题区域在这里:

char *person [10] = { '\0' };
char *movie [10] = { '\0' };
char *rating [10] = { '\0' };

应该改成这样:

char person [10] = { '\0' };
char movie [10] = { '\0' };
char rating [10] = { '\0' };

你想要一个字符数组。不是指针数组。

如果您的问题区域在这里:

long int per = atoi(person[10]);
long int mov = atoi(movie[10]);
long int rat = atoi(rating[10]);

应该改成这样:

long int per = atoi(person);
long int mov = atoi(movie);
long int rat = atoi(rating);

person是(现在)一个字符数组 - 这是atoi预期的。

person[10]是(现在)一个字符,从数组的末尾非法读取。

如果您的问题区域在这里:

return (similarity);
printf("\n Similarity is %i\n", similarity);

应该改成这样:

printf("\n Similarity is %i\n", similarity);
return (similarity);

return.

于 2013-03-21T18:58:41.340 回答