c语言读取文件名问题

有一个文本文件g_name.out,里面存放的是其他数据文件的文件名(如图),每行只有一个文件名,行数不定,如何读取这个g_name.out文件,并根据里面的文件名读取相应的数据文件?谢谢!
g_name.out(存放数据文件名)下

data1_002.txt内容:
请帮忙给出相应的程序语句

  用C语言读取目录中的文件名的方法:

  1、如果是在window环境下,可以用一下方法:

  使用stdlib.h头文件声明的system()函数

  _CRTIMP int __cdecl system (const char*);

  system("dir c:\\ /a:h /b > c:\\dir.txt");

  调用系统命令dir,把c:目录下文件列表写入文件dir.txt中

  2、使用dirent.h头文件中声明的opendir(),readdir()函数;

int main(int argc, char *argv[])

  DIR *directory_pointer; 
    struct dirent *entry; 
   
    if((directory_pointer=opendir("d:\\XL"))==NULL) 
        printf( "Error opening \n "); 
    else 
    { 
        while((entry=readdir(directory_pointer))!=NULL) 
        { 
          printf("%s\n",entry-> d_name);
        } 
        closedir(directory_pointer); 
       
    }

  system("PAUSE");
 return 0;
}

  3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数;

  示例代码:

int main(int argc, char *argv[])
{
  long file;
    struct _finddata_t find;
    
     _chdir("d:\\");
     if((file=_findfirst("*.*", &find))==-1L)
  {
      printf("空白!\n");
     exit(0);
     }
     printf("%s\n", find.name);
     while(_findnext(file, &find)==0)
     {
          printf("%s\n", find.name);
     }
     _findclose(file);
  
  system("PAUSE");
     return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-15
C语言中有两个格式化读写文件的函数,先将文件g_name.out中的内容格式化读取到链表或者数组中,然后遍历链表或者数组,依次取得每个数据文件名,再根据读取到的文件名读取数据文件。
第2个回答  2013-10-15
#include <stdio.h>
void main()
{
FILE *fp1,*fp2;
char name[100];
fp1=fopen("g_name.out","r");
while(!feof(fp1))
{
fgets(fp1,name);
fp2=fopen(name,"r");
以下再读取fp2中的内容。
由于没有编译器,没办法调试,你自己可以根据这个思路写下去。
}
}本回答被提问者采纳

c语言读取文件名问题
用C语言读取目录中的文件名的方法:1、如果是在window环境下,可以用一下方法:使用stdlib.h头文件声明的system()函数 _CRTIMP int __cdecl system (const char*);system("dir c:\\\\ \/a:h \/b > c:\\\\dir.txt");调用系统命令dir,把c:目录下文件列表写入文件dir.txt中 2、使用dirent.h头文...

c语言 读取目录中的文件名,并将其存入数组中
用system 调用 DOS DIR 命令就可以了:system ( "dir sss_* \/B > log.txt");这就把 前缀为sss_的文件 文件名 存入 log.txt 文件了。一个名字一行,没有别的东西。你再 读出来。include <stdio.h> main(){ FILE *fp;char str[30][50]; \/\/ 假定文件数不超过30个 int i,n=0;s...

C语言 fopen函数 读取文件出错 怎么回事
思路没有错。估计是文件名长度问题。如果你用的是早期的编译平台,文件主名不得长于8个字符,扩展名不得多于3个字符。批处理用*.dat就行啊……

C语言中,如下的指令怎么写: 在SD卡根目录下,有一个TXT文件,文件名是...
include "stdio.h"int main(){FILE *file;char fileName[100] = "C:\\\\Users\\\\Administrator\\\\Desktop\\\\abc.txt";\/\/文件地址int data;\/\/打开文件file = fopen(fileName,"r");if(file == NULL){printf("文件不存在\\n");exit(0);}fscanf(file,"%d",&data);\/\/读取文件数据printf("%d\\...

在C语言读文件时,如何说明是当前目录?
直接fopen("abc.txt","r");就可以了。不过要注意一点,如果你使用VC编译调试,那么在里面点!号运行的时候,那个当前目录是指工程目录,而不是Debug文件夹里面。当然,你直接把exe文件拿出来用的话就是一般意义下的当前目录了。

c语言获取文件名
void get_filename(char *path, char *name){ int i,j = 0; for(i = 0; path[i]; i ++) if(path[i] == '\\\\') j = i; strcpy(name, &path[j]);}这样得到的name就是你需要的。PS:对于windows 路径中的是\\ 而不是你题目中的\/ ...

C语言打开文件,打开失败但文件创建成功是为什么?
fopen 打开文件失败,有两个可能的原因:1,相对路径错了;2,文件名命名的有问题,比如打开fopen("1.txt","r");在相对路径下创建文本文件的的时候,将该文件命名为1 就可以了,不要加后缀.txt 。3、scanf("%s",&t);改成scanf("%s",t);也就是把&去掉。这个导致无法读取文件类型。

C语言打开文件问题 程序如下
一,.txt文件存储的是字符,你的123456789,在txt里是char型,即1是字符‘1’对应的是ascii码的049。而且从fgetc()函数可以看出,它读取的是字符。但是巧合的是,字符和整型可以通用,所以,你在下面求余%是没有报错,系统将读取的字符,转换成ascii整型后经行运算,即这样,读取文件里的‘1’其实是...

C语言中要读一个文件需要文件路径么
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程...

C语言中的fopen()函数打开文件时,文件名有什么限制吗?
文件名必须是一个C字符串,它是符合操作系统标准的合法文件,含.和下划线不会错。如:FILE *fin = fopen("data_.dat", "r");FILE *fout = fopen("C:\\\\temp\\\\o_data.dat", "w");由于\\为转义操作符,故目录要用两个\\\\

相似回答