让这个问题给整疯了

1131阅读 0评论2009-05-17 dolinux
分类:C/C++

很简单的一个问题,还是读取文件
我在dev-cpp环境下编译c文件
文件test.in中存放着12 13
首先我定义了变量  __int16  a1, a2;
读取文件时用fscanf(fp,"%d %d", &a1, &a2);
程序总是会无故的死掉。找了好长时间终于找到了。
哎,其实很简单。在dev-cpp下,int占四字节,%d是int型数据的格式控制符。
我这里定义的a1和a2是__int16型的,占两个字节。这里就出现了长度不匹配的问题了。
__int16改为__int32一切问题皆可搞定。
 
这个问题折折磨了我将近一个下午,终于在无意中想到了解决方法。
 
这也可以看出做测试的确实很值钱啊!!经验最重要。
上一篇:文件读取还会出错?对他就是错了
下一篇:indent的参数