2 twinkle snow twinkle_snow 于 2016.02.25 10:50 提问

C语言打开一个电脑中的文件,文件指针显示是错误的指针,这是为什么
FILE *fp1;
printf("请输入要打开的文件的位置:");
    gets(file1);
    if((fp1=fopen(file1,"r"))==NULL)
    {
        printf("Can't open this file!\n");
        exit(0);
    }

对话框中显示为 请输入要打开的文件的位置:D:\a.docx

此时逐语句调试时,局部变量fp1的值显示为+ fp1 0x5e3d1448 {_ptr=0x00000000 <错误的指针> _cnt=0 _base=0x00000000 <错误的指针> ...} _iobuf *

然后程序就出现了错误,求问这是为什么?

5个回答

caozhy
caozhy   Ds   Rxr 2016.02.25 17:09

gets(file1);
这里的file1在哪里定义的,有没有分配?还是只定义了指针?

qq_27564553
qq_27564553   2016.02.25 16:37

你为什么要自己输入路径呢?你试试char *pchDir = “D:\a.docx”;

qq_27564553
qq_27564553 char *pchDir = “D:\\a.docx”昨天打错了
接近 2 年之前 回复
sinat_33931347
sinat_33931347   2016.02.25 22:37

字符串转义字符 要用双斜杠吧!

u010147522
u010147522   2016.02.26 11:30

Windows上路径要用/或者\为间隔

tingyaoyue
tingyaoyue   2016.12.13 20:11

我的问题也是这样

#include
#include

int main()

{

const char *filename = "F://test.txt";

FILE *fp = fopen (filename,"r");

if(fp == NULL)

{

printf("failed to open file!\n");
system("pause");

return -1;

}

老打开失败,单步调试就说- stream 0x013820f4 string "F://test.txt" {_ptr=0x2f2f3a46 <错误的指针> _cnt=1953719668 _base=0x7478742e <错误的指针> ...} _iobuf *等等各种错误的指针。

已被这个问题弄崩溃。在别的电脑上运行又是可以打开文件的。这是什么原因,电脑上缺少什么东西吗?

Csdn user default icon
上传中...
上传图片
插入图片