c - 初学者,试图读取文件在 ubuntu 中返回一个空指针
问题描述
#define max 5
typedef struct
{
char tar[20];
int trab[31];
}data;
int main()
{
int i,j, aux;
char fname[25];
data inf[max];
/*for(i=0;i<max;i++)
{
strcpy(inf[i].tar,inf[i-1].tar);
}*/
printf("File name?");
scanf(" %s", fname);
FILE *f=fopen("fname","r");
if(f== NULL)
{
printf("Cannot find\n");
return 1;
}
我尝试读取一个我非常确定位于同一个目录中的文件,但是每次 FILE 指针返回 NULL。
我将不胜感激任何帮助 :(
解决方案
尽管您已将其标记为 C++,但您的代码看起来更像 C,所以我使用 C 签名来表示main
. 您遇到的主要问题是fname
. 您的代码忽略了输入的路径并尝试打开具有文字名称的文件fname
。
int main(void)
{
int i,j, aux;
char fname[25];
printf("File name? ");
scanf(" %24s", fname); /* Always use width specifier on %s */
FILE *f=fopen(fname, "r"); /* No quotes around fname */
if( f == NULL ){
perror(fname);
return 1;
}
...
推荐阅读
- r - map2() 函数给出
作为输出。寻找真正的价值 - php - PHP ini session.save 两个生命周期都不起作用
- android - html5 视频不适用于 android webview
- azure-resource-manager - 通过 ARM 模板分配 RBAC 错误并出现 InvalidCreateRoleAssignmentRequest
- javascript - 如何使用 React 从 ReqRes API 呈现用户列表
- c# - 我想在 C# 中使用 winform MVP 模式进行数字增量
- r - 这种优化 ROC 绘图的基本原理是什么?
- function - 递归函数 - 阶乘
- vue.js - 将 Vue mixins 导入 Webpack / vue-loader 环境时遇到问题
- jquery - 使用 Jquery 格式化货币(删除小数点后的尾随零)?