精华内容
下载资源
问答
  • 文件打开失败!\n"); exit(1); } fgets(text, MAX, fp); printf("\n\t\t\t%s\n\n", text); for(i=0; i<MAX; i++){ if(text[i] == '\0'){ textLen =...
  • 一个单链表创建学生信息的作业,要求要用文件的输入输出。 打全部路径会出现如图的错误。 打“C:\\\student_info.txt”也不行。 把文件移到project8的文件夹下面打“student_info.txt”也不行。 已确定...
  • 我的文件获取失败是因为一开始用的只写w操作,只写W是刷新写,创建写,在打开文件时即将之前文件中的内容取消,故而下边的数组没有获取到内容,出现错误。原码如下。 #include <stdio.h> void fun(char str...

    我的文件获取失败是因为一开始用的只写w操作,只写W是刷新写,创建写,在打开文件时即将之前文件中的内容取消,故而下边的数组没有获取到内容,出现错误。原码如下。

     

    #include <stdio.h>
    void fun(char str1[])
    {
        int i = 0;
        while (str1[i] != '\0')
        {
            if (str1[i] >= 'A'&&str1[i] <= 'Z')
                str1[i] += 32;
            else
                i++;
        }
    }
    void NONO()
    {
        FILE *fr, *fw;
        int i;
        char s[80];
        fr = fopen("C:\\Users\\佳维\\Desktop\\data.txt", "r");
        //只写操作,先将文件清空,才进行写操作
        fw = fopen("C:\\Users\\佳维\\Desktop\\data.txt", "a");
        for (i = 1; i <= 2; i++)
        {
            fgets(s, 80, fr);
            fun(s);
            fprintf(fw, "%s", s);
            fclose(fr);
            fclose(fw);
        }
    }
    void main()
    {
        char str1[80];
        printf("请输入\n");
        gets(str1);
        fun(str1);
        printf("%s", str1);
        NONO();
    }

    展开全文
  • c语言文件之文件打开方式 打开文件 参数1:文件的路经(相对于可执行文件的相对路径或绝对路径 参数2:文件的模式 r 读模式 w 写模式 a 追加模式 + 读写模式 b 二进制模式 ...fprintf(stdout,"文件打开失败!\

    c语言文件之文件打开方式

    打开文件
    	参数1:文件的路经(相对于可执行文件的相对路径或绝对路径
    	参数2:文件的模式 r 读模式 w 写模式 a 追加模式    + 读写模式  b 二进制模式
    	文件存在 各种模式都可以用
    文件不存在 读模式下会返回错误 写模式或追加模式可以创建文件
    

    file *fp = fopen("test.txt","r")
    if(fp != null)
    {
    fprintf(stdout,"文件打开成功!\n");
    }else
    {
    fprintf(stdout,"文件打开失败!\n");
    //可以使用perror输出完整的错误信息
    perror("文件");
    }
    处理文件(增删改等操作)
    关闭文件
    
    展开全文
  • 用visual studio启动程序,里面输入的文件名(我自己创建的文本文档,是在debug里面创建的)无法在同目录直接找到,所以打开失败。而用命令行参数保证了它们在同一目录下面。 解决办法就是直接去可执行文

    我在做c primer plus有关于文件练习题的时候,用visual studio时,发现通过程序内获取文件名无法正常打开文件,但是通过命令行参数获取文件名却能正常打开文件,再思考和搜索一番后,找到了问题。因为没搜到类似博客,自己写下一篇,希望能帮助到大家。
    1:工程文件和可执行文件不在同一个目录下。用visual studio启动程序,里面输入的文件名(我自己创建的文本文档,是在debug里面创建的)无法在同目录直接找到,所以打开失败。而用命令行参数保证了它们在同一目录下面。
    解决办法就是直接去可执行文件所在目录创建文件,这时再打开可执行文件就可以了。
    2:fgets会收纳最后一个换行符。我用的是比较新的版本的visual studio,所以不能用gets或者gets_s,所以用了fgets,fgets会接收到后一个换行符为止,所以无法找到同名文件。
    解决办法是用一个循环找到fgets输入的字符串中的换行符,并把换行符改成\0,即可。

    展开全文
  • C语言fopen打开文件失败了,原来是这个原因~~~~

    千次阅读 多人点赞 2020-06-19 11:07:54
    经常有人问我,我的C语言代码好好的,怎么就打开文件失败了呢? 我们先来看看代码吧 #include <stdio.h> #include <stdlib.h> int main() { FILE* pfRead = fopen("test.txt", "r"); if (pfRead == ...

    大家好,我是疯狂的比特,一个每天在互联网上种菜和砍柴的程序员
    今天给大家分享一个C语言初学者常见的一个问题。

    问题

    经常有人问我,我的C语言代码好好的,怎么就打开文件失败了呢?
    我们先来看看代码吧

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	FILE* pfRead = fopen("test.txt", "r");
    	if (pfRead == NULL)
    	{
    		printf("打开文件test.txt失败啦\n");
    		exit(1);
    	}
    	//读写文件
    	//to do
    	
    	//关闭文件
    	fclose(pfRead);
    	pfRead = NULL;
    	return 0;
    }
    

    因为这里fopen打开文件的方式是"r",所以我们要保证文件存在!
    那这里我们首先创建一个test.txt这样名字的文件在工程的目录下。
    比如:
    在这里插入图片描述
    然后我们运行程序
    请看结果:
    在这里插入图片描述

    这是为什么呢?
    明明文件存在,代码也没问题!
    明明文件存在,代码也没问题!
    明明文件存在,代码也没问题!
    怎么结果就是错了呢?
    一定是今天写代码没看黄历…
    在这里插入图片描述

    好了,这是突然想起来,C语言还有一个报告错误信息的函数perror哦~

    void perror ( const char * str );
    

    参考文档
    这个函数可以在库函数发生错误的情况下,报告当前库函数使用发生错误的原因。

    这里既然我们发现fopen函数打开文件失败了,就可以在fopen函数后报告一下错误的原因是什么,接下来改代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
    	FILE* pfRead = fopen("test.txt", "r");
    	if (pfRead == NULL)
    	{
    		//改变:这里并没有直接打印,而是换成了perror函数报告错误
    		perror("打开文件test.txt失败啦");
    		exit(1);
    	}
    	//读写文件
    	//to do
    	
    	//关闭文件
    	fclose(pfRead);
    	pfRead = NULL;
    	return 0;
    }
    

    请看结果:
    在这里插入图片描述
    程序给出的结果,让我们清醒认识到其实代码错误和黄历是没有关系的,这里和能力有关系。

    当看到:"No such file or directory"这句话错误提示的时候,我们才开始怀疑,难道是真的文件不存在????难道是真的文件不存在????难道是真的文件不存在????

    到这里你可能还是一筹莫展,不知如何下手?
    那我就接下来揭晓答案!!!!

    这个时候,我们看看创建文件的地方:
    在这里插入图片描述
    那如何显示文件的后缀呢?
    如果你是win10系统,请看这里:
    在这里插入图片描述

    当我们显示文件扩展名的时候,刚刚我们创建的test.txt这个文件的名字为什么是test.txt.txt了呢?

    原来是因为,当我们创建文本文件的时候,电脑自定会给文件带一个后缀是.txt,又因为我们的电脑装好系统后,默认是不显示文件的扩展名的,所以你没看到隐藏的.txt文件,这样就导致了以上的情况。

    你以为你创建了一个test.txt的文件,实质上你创建了一个test.txt.txt的文件!

    那我们看到这里,把文件名的后缀放展示出来,然后再把文件的名字改正确,那我们的程序就可以正常打开文件,并且读写咯。

    知识点

    • fopen以读的形式打开文件,文件必须存在,代码中打开的文件名和实际文件名必须要匹配
    • perror函数是一个错误报告函数,可以适当的使用
    • 我们在使用电脑的时候,最好把文件的扩展名暴露出来,这样就不容易出问题
    • 代码出问题是不小心写了错误的代码,不是黄历的问题,要学会解决问题和调试代码的能力,才能成长为优秀的程序员。

    全文完

    创作不易
    如果你觉得文章帮助到了你
    欢迎点赞,收藏,评论,文明三连,鼓励作者
    我创建了一个粉丝群:1092687209,有什么问题,欢迎交流哦

    展开全文
  • 如果文件打开失败则返回NULL,并把错误代码存在errno 中。 一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。 参数说明...
  • 现在,越来越多朋友都开始使用win10系统了,不过偶尔他们也会遇到一些问题。比如,现在一位朋友反馈自己在win10系统中运行程序时遇到了c:\xx\xxx.dll没有被...其实,该问题一般是由于dll未注册或软件存在缺少文件导...
  • vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统盘下 创建文件失败.返回拒绝访问错误. UAC是微软为了提高...
  • /*采用交互式方式打开指定的文件,若文件打开成功,则显示该文件的大小,并显示文件内容,若文件打开失败,则提示出错信息*/ #include <stdio.h> #include <stdlib.h> #include <io.h> #define ...
  • c语言文件处理

    2019-09-08 10:41:54
    c语言文件处理 打开文件 函数调用的原型: /* * @filename 文件路径 * @model 打开模式 * return 若打开成功则返回一个指向FILE对象的指针;若打开失败则返回NULL */ FILE *fopen( const char * filena...
  • C语言文件操作

    2021-05-08 12:47:36
    * 打开文件, 打开失败返回 NULL * FILE: 系统定义的一个数据结构,含有文件名、文件状态、文件当前位置等信息 * filename: 文件名 * modes: * "r": 打开文本文件,进行读操作 * "w": 打开文本文件,进行写...
  • 场景是客户在识别很多次文件并导出时,发生了错误,根据我们的错误码定位到问题是出在一个open的地方,打开文件的时候失败,造成了不能正常生成文件,最后导致的错误。 定位到问题后,根据open联想到是不是有open...
  • c语言文件操作

    2018-04-04 21:53:58
    c语言文件操作 一.文件处理步骤 (1)声明一个FILE*类型的变量 (2)打开文件:调用fopen()函数将文件指针与这个文件相连 (3)文件处理 (4)关闭文件:调用fclose()函数 ...若打开失败会返回一个NULL的FILE指针。因...
  • C语言文件打开与保存 1.打开文件 /*打开文件,返回人数,将记录读入内存*/ int open() { int m=0; FILE *fp; if((fp=fopen("H:\\studentdata1.txt","r+"))==NULL) { printf("打开文件失败!"); return 0; ...
  • 打开文件失败!\n"); return 0; } fgets(buf, 20, fp); printf("%s", buf); fclose(fp); return 0; }</code></pre> <p><img alt="" height="544" src=...
  • c语言 文件操作

    2015-05-10 17:04:17
    c语言 文件操作文件类型指针 FILE *fp; fp是一个指向FILE类型结构体的指针变量。...若要打开文件失败,返回空指针NULL。若向一个不存在的文件执行写操作: fopen("data.txt","w"); 系统会在当前目录
  • C语言 文件读写

    2021-06-07 10:37:26
    文件的分类: ​ 文本文件: 储存的是ASCII码值的二进制 ...​ r 以只读权限打开文件,如果该文件不存在,则打开失败,返回空指针 FILE* frp = fopen("./test.txt","r"); if(NULL == frp) { prrror("fopen");//
  • C语言文件读写

    2019-09-15 15:11:52
    1.fopen打开文件 fopen函数原型:FILE *fopen(const char *filename, const char *mode);...fopen返回FILE *文件指针,打开失败返回NULL,注意检查。 filename为绝对路径或相对路径 mode可为:r,...
  • 初次认识C语言文件操作 1、编译运行前,请在源程序路径下建立...4、if判断模块建议在每一个文件操作的程序中都写,目的是为了判断文件是否有异常,如果有异常的话就会告警:文件打开失败,可能是没有在源程序路径下建立

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 447
精华内容 178
关键字:

c语言文件打开失败

c语言 订阅