c语言读取文件遇到的问题
这是我写的代码#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX_FILE_LINE20int...
这是我写的代码
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_FILE_LINE 20int main (int argc , char *argv[]){ char line_of_file[MAX_FILE_LINE] ; //存读入的行的内容 char usr_acc_filename[MAX_FILE_LINE]; //用户文件名 FILE *fp; memset(line_of_file , 0 , MAX_FILE_LINE); //初始化两个数组 memset(usr_acc_filename , 0 , MAX_FILE_LINE); fp = fopen(argv[1] , "r") ; //只读方式打开config。txt文件 if ( fp != NULL) { fgets(line_of_file , MAX_FILE_LINE ,fp); //读文件第一行 sscanf(line_of_file , "%s" ,usr_acc_filename); //把第一行的内容放到usr_acc_filename中 printf(usr_acc_filename); //显示usr_acc_filename的内容 } // else // perror(line_of_file); fclose(fp); //关闭文件}
1.为什么会出现这种错误 如何解决 2. 我已经输入了正确的文件名 为什么还是没有打开文件 展开
#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_FILE_LINE 20int main (int argc , char *argv[]){ char line_of_file[MAX_FILE_LINE] ; //存读入的行的内容 char usr_acc_filename[MAX_FILE_LINE]; //用户文件名 FILE *fp; memset(line_of_file , 0 , MAX_FILE_LINE); //初始化两个数组 memset(usr_acc_filename , 0 , MAX_FILE_LINE); fp = fopen(argv[1] , "r") ; //只读方式打开config。txt文件 if ( fp != NULL) { fgets(line_of_file , MAX_FILE_LINE ,fp); //读文件第一行 sscanf(line_of_file , "%s" ,usr_acc_filename); //把第一行的内容放到usr_acc_filename中 printf(usr_acc_filename); //显示usr_acc_filename的内容 } // else // perror(line_of_file); fclose(fp); //关闭文件}
1.为什么会出现这种错误 如何解决 2. 我已经输入了正确的文件名 为什么还是没有打开文件 展开
1个回答
展开全部
printf(usr_acc_filename); //显示usr_acc_filename的内容
这一行有问题吧档悄,c语渗蠢斗言输出字符串的格式是printf("%s",char *s)。把这一丛磨句改了试试行不行。
这一行有问题吧档悄,c语渗蠢斗言输出字符串的格式是printf("%s",char *s)。把这一丛磨句改了试试行不行。
更多追问追答
追问
不是这一句的事 试了
追答
我测试的结果是当当前目录下没有config.txt这个文件的时候,程序运行的时候就会报错;但是当目录下有这个文件的时候就没有问题了。
我测试的平台是ubuntu14.04,
#include
#include
#include
#define MAX_FILE_LINE 20
void main(int argc,char **argv){
char line_of_file[MAX_FILE_LINE];
char usr_acc_filename[MAX_FILE_LINE];
FILE *fp;
memset(line_of_file,0,MAX_FILE_LINE);
memset(usr_acc_filename,0,MAX_FILE_LINE);
fp=fopen(argv[1],"r");
if(fp!=NULL){
fgets(line_of_file,MAX_FILE_LINE,fp);
sscanf(line_of_file,"%s",usr_acc_filename);
printf("%s\n",usr_acc_filename);
}
else{
printf("Error\n");
}
fclose(fp);
}
不知道你用的平台会不会有问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询