[英]How to use information from a file in c
因此,我们正在尝试创建一种计算,以比较用户提供给我们的电影的评分。 我们将这些分为不同的小组,用于我们的课堂项目。 我的任务是创建一个计算,该计算从另一个团队的文件输出中读取,然后使用我想出的计算来创建输出。 从文件中读取是可以的,但是我还无法弄清楚如何使用该信息进行计算。
这是我的问题所在:
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;
}
希望我已经解释了这个权利
如果您的问题所在 :
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
之后将不再执行函数中的其他代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.