【发布时间】:2014-03-09 16:33:27
【问题描述】:
我的程序的一些背景知识。我要求用户输入两种不同颜色晶体的坐标。这将保存在一个结构中,然后写入文件,稍后由程序读回(功能尚未编写)。
我查看了论坛和博客,但我似乎只找到与字符数组相关的结果,而我使用的是 int 数组。
在将数据写入文件之前,我的代码工作正常。 (这是代码的sn-p)
char fname[20];
FILE *fp;
int loop;
struct coord{
int x;
int y;
};
for(loop=0;loop<3;loop++){
printf("Enter MAGENTA X coordinate: \n");
scanf("%2d",&mg[loop].x);
printf("Enter MAGENTA Y coordinate: \n");
scanf("%2d",&mg[loop].y);
printf("\n\n");
}
for(loop=0;loop<3;loop++){
printf("Enter YELLOW X coordinate: \n");
scanf("%2d",&ylw[loop].x);
printf("Enter YELLOW Y coordinate: \n");
scanf("%2d",&ylw[loop].y);
printf("\n\n");
}
clrscr();
printf("\nDetail entered:");
printf("\n\n\tMagenta\t\tYellow\n");
for(loop=0;loop<3;loop++){
printf("\tx %d,%d y\tx %d,%d y\n",mg[loop].x,mg[loop].y,ylw[loop].x,mg[loop].y);
}
printf("\n\nPlease save your data. Enter file name: ");
gets(fname);
fp=fopen(fname,"w");
for(loop=0;loop<3;loop++){
fprintf(fp,"%d,%d ",mg[loop].x,mg[loop].y);
fprintf(fp,"%d,%d ",ylw[loop].x,ylw[loop].y);
}
fclose(fp);
提前谢谢你。
【问题讨论】:
-
My code works fine until the writing of the data to the file... 那么会发生什么? -
输入的格式是什么?能举个例子吗?
-
@RobertHarvey 我的编译器给出了错误表达式:(str != NULL)
-
@TylerDurden 输入是 int 类型。 x 的值范围为 0-50,y 的值范围为 0-100。它是一种网格形式的表示。
-
@j_prog:编译器错误与您显示的代码无关。
str在哪里?
标签: c arrays struct int printf