很诡异的一个问题

lonko 2008-07-29 09:49:36
请看代码
void SaveAll(Unit *head)
{
FILE *fp;
Unit *pUnit=head,*empty_Unit={"#"};
Profit *pProfit,*empty_Profit={"#"};
Partner *pPartner,*empty_Partner={"#"};
int isopen=0,issaved=0;
empty_Unit->Head=NULL;
empty_Unit->Next=NULL;
empty_Profit->Head=NULL;
empty_Profit->Next=NULL;
empty_Partner->Next=NULL;
fp=fopen("data.dat","wb+");
if(fp==NULL)
{
ShowTop();
printf("\t\tCan't Save!!Press any key to return..");
getchar();
}
else isopen=1;
if(isopen)
{
while(pUnit)
{
pProfit=pUnit->Head;
fwrite(pUnit,LEN_Unit,1,fp);
while(pProfit)
{
pPartner=pProfit->Head;
fwrite(pProfit,LEN_Profit,1,fp);
while(pPartner)
{
fwrite(pPartner,LEN_Partner,1,fp);
pPartner=pPartner->Next;
}
fwrite(empty_Partner,LEN_Partner,1,fp);
pProfit=pProfit->Next;
}
fwrite(empty_Profit,LEN_Profit,1,fp);
pUnit=pUnit->Next;
}
fwrite(empty_Unit,LEN_Unit,1,fp);
issaved=1;
}
if(issaved)
{
ShowTop();
printf("\t\tSaved!!Press any key to continue..");
getchar();
}
fclose(fp);
}


为什么printf出来的只有"Saved!!Press any "这几个字符?很多次了,都只有这几个字符,没有偶然性,救救我吧~~~~
...全文
184 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
susemm 2008-07-30
  • 打赏
  • 举报
回复
ShowTop();
是干吗使的?
NWCforever 2008-07-30
  • 打赏
  • 举报
回复
印象中用w+好像是不管文件是否存在都建新文件吧,所以不会输出“Can't Save!!Press any key to return..”。
guzhilei1986 2008-07-30
  • 打赏
  • 举报
回复
FILE *fp;这个要初始化一下吧。
FILE *fp=NULL;
happyboxman 2008-07-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jillnicky 的回复:]
呵呵!~在每次getchar之前fflush(stdin);
[/Quote]
11000000 2008-07-30
  • 打赏
  • 举报
回复

如果把调用该函数的部分也贴出来,大家还可以帮你调试看看。

[Quote=引用 4 楼 smallnat 的回复:]
试着打印其他字符~~~
如果只是打印的内容和预期不一样,更换打印的内容,看看打印其他内容时,是否还是只打印一半~

多尝试!!!
[/Quote]
  • 打赏
  • 举报
回复
呵呵!~在每次getchar之前fflush(stdin);
lonko 2008-07-30
  • 打赏
  • 举报
回复
更改为其他字符后仍然只有一部分……所以觉得很诡异
hznat 2008-07-30
  • 打赏
  • 举报
回复
试着打印其他字符~~~
如果只是打印的内容和预期不一样,更换打印的内容,看看打印其他内容时,是否还是只打印一半~

多尝试!!!
ChamPagneZ 2008-07-29
  • 打赏
  • 举报
回复
 
printf("\t\tSaved!!Press any key to continue..");//printf("\n\t\tSaved!!Press any key to continue..");//试一试


linzsoft 2008-07-29
  • 打赏
  • 举报
回复
没看懂你的问题。"Saved!!Press any "这几个字符?很多次了,都只有这几个字符,
haohaokingXP 2008-07-29
  • 打赏
  • 举报
回复
其他代码也没有~~~

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧