Ssssv11 2021-05-17 16:49 采纳率: 100%
浏览 757
已结题

C语言文件打开失败是怎么回事?

void ReadFile(int *key){
	int i ,flag ,j;
	*key = 0;
	char fileName[20];
	for(i=0; i<60; i++){
		binary[i].ch = '\0';
		binary[i].num = 0;
	}
	printf("\n\t\t\t请输入文件名:");
	scanf("%s", fileName);
	FILE *fp = fopen(fileName,"r+");
	if(fp == NULL){
        perror("打开文件失败啦");
		//printf("文件打开失败!\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 = i;
			break;
		}
	}
	for(i=0; i<textLen; i++, flag=0){
		for(j=0; j<(*key); j++){
			if(binary[j].ch == text[i]){
				binary[j].num++;
				flag = 1;
			}
		}
		if(flag == 0){
			binary[*key].ch = text[i];
			binary[*key].num += 1;
			(*key)++;
		}
	}
	printf("\t\t\t文件共有%d种字符,文件总字符数为%d", *key, textLen);
	fclose(fp);
}

在判断fp == null的时候直接返回

用 perror()返回No such file or directory

 求大佬讲解一下该怎么办

  • 写回答

5条回答 默认 最新

  • CSDN专家-三岁丫 2021-05-17 16:53
    关注

    要把test1文件,放到编译后的可执行文件的同级文件夹下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • CSDN专家-link 2021-05-17 16:56
    关注

    你直接输入文件名,程序并不知道它所在的路径啊,你最好输入完整的文件路径

    评论
  • 秋杪 2021-05-17 16:57
    关注

    fileName 要初始化,这样 char fileName[20] = {0};

    评论
  • qfl_sdu 2021-05-17 16:57
    关注

    打开文件的时候如果没有输入路径,程序会从当前项目目录下查找,这就需要把文件放在项目目录下,或者在输入文件名的时候把路径也一起输入。

    另外,建议char fileName[20];初始化一下:char fileName[20] ={0};

    评论
  • 有问必答小助手 2021-05-17 17:00
    关注

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月3日

悬赏问题

  • ¥15 activity升级到flowable工作流act_ge_bytearray的草稿json数据复制到act_de_model 的model_editor_json的脚本
  • ¥15 cvi使用CreateThread创建线程时,出现存储空间不足无法处理此命令的错误
  • ¥15 求苹果推信imessage批量推信技术
  • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
  • ¥15 利用加权最小二乘法求亚马逊各类商品的价格指标?怎么求?
  • ¥15 c++ word自动化,为什么可用接口是空的?
  • ¥15 Matlab计算100000*100000的矩阵运算问题:
  • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
  • ¥16 需要完整的这份订单所有的代码,可以加钱
  • ¥30 写一个带界面控制的机房电脑一键开机关机并且实时监控的软件