Ⅰ c語言讀取文件的路徑怎麼設定
//獲取指定目錄下的所有文件列表 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
Ⅱ c語言怎麼打開一個文件夾,求完整程序
如果是源文件的話,單擊右鍵,找到並打開「屬性」,屬性的「常規」裡面有打開方式,你單擊「打開方式」後面的「更改」,然後再「推薦程序"與"其他程序里"找,如果沒有,那麼點擊下面的「瀏覽」,這一步是要找到你安裝turbo C&C++的目錄下你turbo c&C++這個應用程序的圖標,這圖標一般跟你安裝後出現在桌面的圖標相似。(如果你是默認安裝的,那麼你一般可以去c盤,program files文件夾,然後可能會看到名字含有turbo 單詞的文件夾,在裡面也許你可以直接看到那個應用程序圖標,也許不能,不能的話,那就在裡面有個bin文件夾的,bin就是二進制的意思,bin文件夾里一般含有這個應用程序的圖標。你選中後摁下面的「打開」就行了。
你是初中生嗎,怎麼還用turbo c呢,是用的譚浩強的教材吧,他的教材其實裡面有些源程序錯誤挺多的。
Ⅲ 如何用c語言如何打開一個文件夾
用文件路徑操作來函數找到源代碼源所在的文件夾。使用文件操作函數fopen打開源文件即可。
路徑操作函數 chdir。
chdir函數是C語言中的一個系統調用函數(同cd)功 能:更改當前工作目錄。參 數:Path 必選。Path 可能包含驅動器。如果未指定驅動器,則當前驅動器上的默認目錄或文件夾。返回值:成功返回0 ,失敗返回-1
文件操作函數fopen。
函數原型:FILE* fopen(const char * path,const char * mode);返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。一般而言,打開文件後會做一些文件讀取或寫入的動作,若打開文件失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
Ⅳ C語言文件路徑設置
C語言中指定文件路徑的三種方法:
方法一:當前工程下的文件
fopen("demo.txt","rt");
方法二:當前工程下的 test文件夾 中文件
fopen(".\test\demo.txt","rt");
方法三:絕對路徑,D盤下project文件夾中的文件
fopen("d:\project\demo.txt","rt");
Ⅳ c語言讓fopen打開的文件在固定路徑
#include<stdio.h>
#include<stdlib.h>
int main()
{
#define PATH = "./a/b/c/"
char readBuff[128] = {0};
char fileName[64] = {0};
char PathAndName[128] = {0};
FILE *fp = NULL;
scanf("%s",fileName);
printf("fileName = %s\n",fileName);
sprintf(PathAndName,PATH"%s",fileName);
fp = fopen(PathAndName,"r");
while(fget(buff,sizeof(buff),fp))
{
printf("buff = %s\n",buff);
}
fclose(fp);
return 1;
}
文件路徑為程序所在目錄下的a/b/c目錄中,這個內你可以容自己更改
Ⅵ c語言如何用fopen打開另一相對路徑下的文件夾
設置fopen打開的文件為固定路徑
,如果路徑及文件名都是固定的,只需要使用字元串指針或者字元數專組將路徑設置成字元串常量即可。
const cahr *file_name = "a\b\c\test.txt";或者
const char file_name[] = "a\b\c\test.txt";如果目錄是固定的,而寫入或者讀取的文件是可變的。可以使用字元指針將目錄定義為字元串常量或者字元數組。
const char *dir_path = "a\b\c";當操作文件時,可以通過字元串復制函數來進行路徑字元串的重級。
char file_path[256] = {0};
strcpy(file_path, dir_path); //復制固定路徑
strcpy(file_path, "filename"); //filename是文件名稱。也可以,直接使用字元數組保存固定路徑,屬然後通過字元串復制函數將文件名追加到固定路徑的字元數組中。
char file_path[256] = "\a\b\c";
strcpy(file_path, "filename"); //filename是文件名稱
Ⅶ Linux下用c語言打開文件路徑問題
C語言程序也是啟抄動一個進程, 所以襲他也也有環境變數, 默認是繼承父進程的環境變數;如果是shell界面直接啟動, 那麼就是繼承shell的環境變數; 如果是其他程序啟動這個那麼就是繼承那個程序的環境變數;
首先沒有搞清楚hello.html是可執行程序, 還是不可執行文件;現在我默認把他當作可執行文件
./表示當前目錄;即執行當前目錄下的hello.html; 如果沒有則報錯
而直接使用程序(hello.html)默認是先在PATH環境變數中查找; 如果PATH環境變數中沒有則報錯;
Ⅷ 請問高手,c語言下用什麼函數可以讀取從鍵盤輸入的任意文件路徑然後再打開該文件
可以運行後指定要打開的文件,成功運行
如我D盤下有f1.txt,沒有f3.txt
兩次運行結果分別是
一:
請輸入要打開的文件名(含路徑):
d:\f1.txt
成功打開文件d:\f1.txt!
Press any key to continue
二:
請輸入要打開的文件名(含路徑):
d:\f3.txt
打開文件失敗!
Press any key to continue
程序如下:
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 50
void main()
{
char* file=(char*)malloc(sizeof(char)*MAXSIZE);
printf("請輸入要打開的文件名(含路徑):\n");
gets(file);
FILE* fp;
if(!(fp=fopen(file,"r")))
{
puts("打開文件失敗!\n");
}
else
{
printf("成功打開文件%s!\n",file);
fclose(fp);
}
free(file);
}
Ⅸ C語言打開文件的路徑問題
#include<stdio.h>
int main(void)
{
int a, sum;
FILE *ifp, *ofp;
sum = 0;
if((ifp = fopen("C:\Users\huangwj\Desktop\h.txt", "rt"))==NULL)
{
printf("not in");
return 0;
}
if((ofp = fopen("C:\Users\huangwj\Desktop\yes.txt", "wt"))==NULL)
{
printf(" out!!");
return 0;
}
while( fscanf(ifp, "%d", &a) != EOF)
sum += a;
fprintf(ofp, "The sum is %d. \n", sum);
fclose(ifp);
fclose(ofp);
return 0;
}
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您回生活愉快答!