运行崩溃的问题

ccbbcc 2017-11-25 02:12:57
#include <stdio.h>

unsigned char buffer[153600];
int main(void)
{
unsigned long int i,j;
unsigned char k;
FILE *fp,*fp1;
if((fp=fopen("pic.h","r")==NULL))
{
printf("cannot open file!");
exit(0);
}
if((fp1=fopen("picture.bin","wb")==NULL))
{
printf("cannot open file!");
exit(0);
}
fscanf(fp,"%d,",&k); //运行到这就死了
printf("ok");
fscanf(fp,"%c,",&buffer[0]);
printf("\nok1");
for(i=0;i<5400;i++)
{
for(j=0;j<15;j++)
{
fscanf(fp,"%c,",&buffer[i*16+j]);
printf("%c",buffer[i*16+j]);
}
fscanf(fp,"%c,\n",&buffer[i*16+15]);
printf("%c\n",buffer[i*16+15]);
}

fclose(fp);

fwrite(&buffer,86400,1,fp1);
fclose(fp1);
}
请高手指教,谢谢!
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-11-25
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
jena_wy 2017-11-25
  • 打赏
  • 举报
回复
if((fp=fopen("pic.h","r")==NULL)),逻辑运算大于赋值晕算,所以你这句话的意思是把bool量给了fp,改成if((fp=fopen("pic.h","r"))==NULL),就好了。 #include <iostream> unsigned char buffer[153600]; int main(void) { unsigned long int i,j; unsigned char k; FILE *fp,*fp1; fp=fopen("pic.h","r"); if((fp=fopen("pic.h","r"))==NULL) { printf("cannot open file!"); exit(0); } if((fp1=fopen("picture.bin","wb"))==NULL) { printf("cannot open file!"); exit(0); } fscanf(fp,"%d,",&k); //运行到这就死了 printf("ok"); fscanf(fp,"%c,",&buffer[0]); printf("\nok1"); for(i=0;i<5400;i++) { for(j=0;j<15;j++) { fscanf(fp,"%c,",&buffer[i*16+j]); printf("%c",buffer[i*16+j]); } fscanf(fp,"%c,\n",&buffer[i*16+15]); printf("%c\n",buffer[i*16+15]); } fclose(fp); fwrite(&buffer,86400,1,fp1); fclose(fp1); }
wang0635 2017-11-25
  • 打赏
  • 举报
回复
if((fp=fopen("pic.h","r")==NULL)) 改成 if((fp=fopen("pic.h","r"))==NULL) 后面一个也是
ccbbcc 2017-11-25
  • 打赏
  • 举报
回复
%c也不对,照样崩溃
wang0635 2017-11-25
  • 打赏
  • 举报
回复
k 对应的应该是 %c

69,364

社区成员

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

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