繁体   English   中英

如何在C中使用文件中的信息

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM