我有下面的代码在xcode中编译得很好,但当我把它带到Microsoft Visual Studio时,我得到了一堆错误。
void openfile(int mapArray[MAX_HEIGHT][MAX_WIDTH], int *interest, int *dimension1, int *dimension2)
{
int counter = 0;
char buffer;
int rowss, colss;
*interest = 0;
FILE *f;
f = fopen(FILENAME, "r");
if (f==NULL) {
printf("Map file could not be opened");
return 0;
}
// create char array the dimensions of the map
fscanf(f, "%d %d" , dimension1, dimension2 );
// printf("%d %d\n" , dimensions[0], dimensions[1]);
// Reads the spaces at the end of the line till the map starts
buffer=fgetc(f);
while (buffer!='*') {
buffer=fgetc(f);
}
// Read the txt file and print it out while storing it in a char array
while (buffer!=EOF) {
mapArray[rowss][colss]=buffer;
colss++;
// Count up the points of interest
if (((buffer>64)&&(buffer<90))||(buffer=='@') ) {
counter++;
}
// resets column counter to zero after newline
if (buffer=='\n') {
colss=0;
rowss++;
}
buffer=fgetc(f);
}
// Closes the file
fclose(f);
*interest=counter;
}
哪些部分正在创建所有错误? 我在尝试编译时得到了这个错误列表
提前致谢。
答案 0 :(得分:0)
我看到一些直接的问题。首先,您在使用之前未初始化rowss
或colss
,因此它们可能包含任何值。
其次,fgetc()
返回int
,以便您可以检测文件结尾。通过使用char
来保存返回值,您将违反与标准库的合同。
第三,如果文件名无法打开,则返回0
,尽管指定函数返回void
(即没有)。
毫无疑问,这些是编译器选择的三个错误,可能还有其他错误,您应该将错误列表与您的问题一起发布,以进行更详尽的分析。