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

如何在c中使用文件中的信息,c,C,因此,我们正在尝试创建一个计算方法,用于比较用户给我们的电影收视率。我们已经为我们的班级项目将其分为不同的小组。我的任务是创建一个计算,从不同团队的文件输出中读取数据,然后使用我提出的计算创建一个输出。从文件中读取是可以的,但是我还没有弄清楚如何使用这些信息进行计算 这是我的问题领域: long int similarity; #define MAXLINESIZE 80 FILE* myTextFile; char ch; char lineBuf[MAXLINESIZE] = { '

因此,我们正在尝试创建一个计算方法,用于比较用户给我们的电影收视率。我们已经为我们的班级项目将其分为不同的小组。我的任务是创建一个计算,从不同团队的文件输出中读取数据,然后使用我提出的计算创建一个输出。从文件中读取是可以的,但是我还没有弄清楚如何使用这些信息进行计算

这是我的问题领域:

    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' };
long int per = atoi(person[10]);
long int mov = atoi(movie[10]);
long int rat = atoi(rating[10]);
return (similarity);
printf("\n Similarity is %i\n", similarity);
应将其更改为:

char person [10] = { '\0' };
char movie [10] = { '\0' };
char rating [10] = { '\0' };
long int per = atoi(person);
long int mov = atoi(movie);
long int rat = atoi(rating);
printf("\n Similarity is %i\n", similarity);
return (similarity);
您需要一个字符数组。不是指针数组

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

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]);
return (similarity);
printf("\n Similarity is %i\n", similarity);
应将其更改为:

char person [10] = { '\0' };
char movie [10] = { '\0' };
char rating [10] = { '\0' };
long int per = atoi(person);
long int mov = atoi(movie);
long int rat = atoi(rating);
printf("\n Similarity is %i\n", similarity);
return (similarity);
person
现在是一个字符数组,这是
atoi
所期望的

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

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

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]);
return (similarity);
printf("\n Similarity is %i\n", similarity);
应将其更改为:

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

return

之后,函数中不再执行任何代码。您的问题是什么?我认为主要问题是
char*rating[10]={'\0'}。使用指针数组存储字符。非常感谢你提出这样的问题。谢谢你帮助像我这样的新手。我现在有一个工作程序。