c语言读取文件的路径怎么设定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言读取文件的路径怎么设定相关的知识,希望对你有一定的参考价值。

有如下程序,运行后输入路径即可读取文本文件,现在我想让他实现读取和程序在同一目录下的文件student.dat,请问怎么改?#include <stdio.h>
#include <stdlib.h>#define LINE 1024char *ReadData(FILE *fp, char *buf)

return fgets(buf, LINE, fp);//读取一行到buf
void someprocess(char *buf)

printf("%s", buf);
void main()

FILE *fp;
char *buf, filename[20], *p; printf("input file name:");
gets(filename);

if ((fp=fopen(filename, "r"))==NULL)
printf("open file error!!\n");
return;
buf=(char*)malloc(LINE*sizeof(char)); while(1)
p=ReadData(fp, buf);//每次调用文件指针fp会自动后移一行
if(!p)//文件读取结束则跳出循环
break;
someprocess(buf);

//获取指定目录下的所有文件列表 author:wangchangshaui jlu
char** getFileNameArray(const char *path, int* fileCount)

int count = 0;
char **fileNameList = NULL;
struct dirent* ent = NULL;
DIR *pDir;
char dir[512];
struct stat statbuf;

//打开目录
if ((pDir = opendir(path)) == NULL)

myLog("Cannot open directory:%s\n", path);
return NULL;

//读取目录
while ((ent = readdir(pDir)) != NULL)
//统计当前文件夹下有多少文件(不包括文件夹)
//得到读取文件的绝对路径名
snprintf(dir, 512, "%s/%s", path, ent->d_name);
//得到文件信息
lstat(dir, &statbuf);
//判断是目录还是文件
if (!S_ISDIR(statbuf.st_mode))

count++;

//while
//关闭目录
closedir(pDir);
// myLog("共%d个文件\n", count);

//开辟字符指针数组,用于下一步的开辟容纳文件名字符串的空间
if ((fileNameList = (char**) myMalloc(sizeof(char*) * count)) == NULL)

myLog("Malloc heap failed!\n");
return NULL;


//打开目录
if ((pDir = opendir(path)) == NULL)

myLog("Cannot open directory:%s\n", path);
return NULL;

//读取目录
int i;
for (i = 0; (ent = readdir(pDir)) != NULL && i < count;)

if (strlen(ent->d_name) <= 0)

continue;

//得到读取文件的绝对路径名
snprintf(dir, 512, "%s/%s", path, ent->d_name);
//得到文件信息
lstat(dir, &statbuf);
//判断是目录还是文件
if (!S_ISDIR(statbuf.st_mode))

if ((fileNameList[i] = (char*) myMalloc(strlen(ent->d_name) + 1))
== NULL)

myLog("Malloc heap failed!\n");
return NULL;

memset(fileNameList[i], 0, strlen(ent->d_name) + 1);
strcpy(fileNameList[i], ent->d_name);
myLog("第%d个文件:%s\n", i, ent->d_name);
i++;

//for
//关闭目录
closedir(pDir);

*fileCount = count;
return fileNameList
参考技术A "student.dat",或者直接设定它的路径,比如在C盘WINDOWS下就是:"C:\\WINDOWS\\student.dat"注意要多加\,也就是说是\\

以上是关于c语言读取文件的路径怎么设定的主要内容,如果未能解决你的问题,请参考以下文章

怎么使用C语言读取properties配置文件

怎么使用C语言读取properties配置文件

怎么调用pandas读取csv文件

c语言如何获得文件当前路径?

怎么用fstream读取文件里存的内容

C语言 如何读取xml文件中的数据并存入一个结构体中