首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

啊显示段异常

2013-04-09 
求助啊,显示段错误我在unix下编写了以下一段程序 #include stdio.h#include stdlib.hint main(){int c

求助啊,显示段错误
我在unix下编写了以下一段程序
 #include <stdio.h>
#include <stdlib.h>

int main()
{
int c;
FILE *in, *out;

in = fopen("file.in", "r");
out = fopen("file.out"."w");

while((c = fgetc(in)) != EOF)
fputc (c,out);

exit (0);
}

gcc编译后 显示说是段错误,我查了后说是指针有问题,求各位大牛指点哪里有问题啊。。。。
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

判断是否越界访问,可以在数组的最后一个元素之后对应的地址处设置数据读写断点。如果该地址对应其它变量干扰判断,可将数组多声明一个元素,并设置数据读写断点在该多出元素对应的地址上。

[解决办法]

引用:
引用:in = fopen("file.in", "r");
out = fopen("file.out"."w");//中间的是.不是,?能编译过
在上面两个地方下断点、感觉你file.in 的路径不对。后面是"r"没有打开,返回的是NULL


那我要怎样去改路径呢?
还是有那个“r”,没打开是什么意思啊


没打开很可能是文件没找到。
fopen第一个参数是要指定文件路径,如果只提供文件名,那默认是当前路径,所谓当前路径是指你程序所在的目录
[解决办法]
您好:unix我没用过,但是我把你的代码在我的电脑上试了一下,我是没有发现什么问题,虽然没有判断文件打开是否成功,但这是编码规范问题,我用的是VC6,我刚开始时在我的工作目录下创建了file.in,但是还是显示打开错误,所以我就把他加到了FileView下的Resource File里面了,然后就成功了,当然了我说的是在VC6下,unix是不一样的

热点排行