如何在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'}代码>。使用指针数组存储字符。非常感谢你提出这样的问题。谢谢你帮助像我这样的新手。我现在有一个工作程序。