【发布时间】:2012-02-17 09:47:32
【问题描述】:
好的,伙计们,我的程序还有一个问题。
我遇到了使用相同文件名(KnightsBall.“extension”)的问题。我不知道这是本地的问题,还是我将代码移过来时会遇到的问题。那么任何人都可以帮助我解决我忽略的事情吗?输出和输入都必须转到相同的文件名。(输入)或(输出)所以没有办法。如果我将输出文件更改为 knights.out 它可以工作。有任何想法吗?
相关代码段:
FILE *fr;
FILE *fo;
typedef struct KnightsBallLottoPlayer
{
char firstName[20];
char lastName[20];
int numbers[6];
} KBLottoPlayer;
int main()
{
KBLottoPlayer *temp;
int numPlays=0;
//What file to read from
fr = fopen("KnightsBall.in", "r");
//What file to read to
fo = fopen("KnightsBall.out", "w");
以及访问输出的部分:
if(match==3)
fprintf(fo,"%s %s matched %d numbers and won $10.\n", temp[r].firstName, temp[r].lastName, match);
if(match==4)
fprintf(fo,"%s %s matched %d numbers and won $100.\n", temp[r].firstName, temp[r].lastName, match);
if(match==5)
fprintf(fo,"%s %s matched %d numbers and won $10000.\n", temp[r].firstName, temp[r].lastName, match);
if(match==6)
fprintf(fo,"%s %s matched %d numbers and won $1000000.\n", temp[r].firstName, temp[r].lastName, match);
还有一个完全不相关的旁注,有没有人知道在我扫描用户需要的值后如何关闭命令提示符?非常感谢所有帮助。
【问题讨论】:
-
我不太确定你的问题是什么。您是说您在阅读和写入 KnightsBall.in 时遇到问题吗?
-
没有。我从 KnightsBall.in 读到。处理完信息后,我必须将 fprintf 语句输出到 KnightsBall.out。我遇到的问题是读入总是有效,但写出 KnightsBall.out 对文件没有任何作用。如果我将 KnightsBall.out 更改为 Knights.out,它的效果非常好。有什么想法吗?
-
啊,我明白了;这很好奇。您确定仅在使用 fclose() 关闭文件后才检查文件的内容吗?
-
我实际上从不使用 fclose() 关闭文件。我试过了,也没用。
-
手动创建一个名为“KnightsBall.out”的空文件。运行你的程序。如果这不起作用,则此处未显示其他地方的错误。