c - 将文件名作为 C 的参数传递

标签 c file

我正在尝试编写一个函数,该函数读取文件名(par.dat)并打印以屏幕写入文件中的值。该值可以是整数,例如 12。但是,我的代码仅在屏幕上打印“0”值。有人可以告诉我如何解决这个问题吗?

#include<stdio.h>
#include<stdlib.h>

int foo( const char *argv){
   FILE *fp;
   char c[25];
   FILE *fptr;
   fptr = fopen(argv, "r");
   fscanf(fptr,"%[^\n]", c);
   fp = fopen(c, "r");
   fscanf(fp, "%d", &num);
   printf("%d\n", num);
   fclose(fptr);
   }

int main(){
int num;

foo("par1.dat");

    return 0;
}

最佳答案

你可以做这样的事情!

      #include <stdio.h>

void foo(const char *filename)
{
   FILE *par = fopen(filename, "r");
   int num;
   if(par != NULL)
   {
        fscanf(par, "%d", &num);

        fclose(par);
        printf("%d\n",num);
   }
   else
   {
      perror(filename);
   }
}
int main(void)
{
   const char filename[] = "par.dat";
   foo(filename);
   return 0;
}

关于c - 将文件名作为 C 的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561731/

相关文章:

c++ - 将结构写入文件

javascript - 配置 Grails Controller 从服务检索数据后在浏览器中下载文件

linq - 使用 LINQ 和 File.ReadAllLines() 读取下一行

java - 为什么我创建的 ZIP 文件在游戏中不起作用?

c - 在 GBDK C 项目中包含静态库 (GBExtended)

c++ - 根据支持的指令选择要使用的程序集实现

c - C语言中的"too many arguments to function"

c - 尝试将标准输入读取到二维动态分配的数组时出现段错误

c - Switch 启动时默认运行

c - fread 无法读取无符号整数? [C]