導航:首頁 > 文件目錄 > c怎麼讀取文件路徑總是不對

c怎麼讀取文件路徑總是不對

發布時間:2023-12-27 14:26:11

『壹』 linux下用c語言打開文件路徑問題

C語言程序也是啟抄動一個進程, 所以襲他也也有環境變數, 默認是繼承父進程的環境變數;如果是shell界面直接啟動, 那麼就是繼承shell的環境變數; 如果是其他程序啟動這個那麼就是繼承那個程序的環境變數;
首先沒有搞清楚hello.html是可執行程序, 還是不可執行文件;現在我默認把他當作可執行文件
./表示當前目錄;即執行當前目錄下的hello.html; 如果沒有則報錯
而直接使用程序(hello.html)默認是先在PATH環境變數中查找; 如果PATH環境變數中沒有則報錯;

『貳』 c語言中如何得到當前文件所在位置

如果是通過open方式打開的,那麼第一個參數就是文件路徑信息:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int open(const char *path, int oflag, /* mode_t mode */...);

如果是通過fopen方式打開的,那麼第一個參數就是文件路徑信息:
#include <stdio.h>
FILE *fopen(const char *filename, const char *mode);

無論通過open還是fopen打開文件,都必須先知道文件路徑信息,盡管可能是相對路徑。
如果知道了filename的內容,我們就可以定位它的絕對路徑,也就是你說的完全路徑。

1. filename本身就是絕對路徑,ok。
2. filename是相對路徑,那麼先通過getcwd獲取進程的執行路徑,然後再獲取絕對路徑即可。
#include <unistd.h>
extern char *getcwd(char *buf, size_t size);

但是,如果進程在打開文件後又執行了chdir、fchdir之類函數的話,估計就不能夠再獲取文件路徑信息了。
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fildes);

『叄』 c語言讀取txt文件時,文件路徑怎麼寫,調試的時候都是找不到該文件

帶空格的文件名,可以先放入char 數組,再使用。例如:
FILE *fin;
char namein[80]="D:\\kkk\\tmp\\test sp\\a.txt"; // 帶空格
int x;
printf("%s\n",namein);
fin=fopen(namein,"r"); // 這里用變數名
if (!fin) printf("open err");
fscanf(fin,"%d",&x);
printf("%d",x);
fclose(fin);
}

c++ 也一樣。

還有一種老方法,帶空格的路徑 用 8字元 省略法(寫6個字元加1個波浪號加1):
namein[80]="C:\DOCUME~1\Administrator\abc.txt";

『肆』 C程序中文件路徑問題

C 語言 最早 用於 unix.
unix 的路徑 是用 正斜杠 /, linux 繼承 unix 用 正斜杠,
網頁 html 等 也是用 正斜杠.

反斜杠,計算機 軟體 用於 「轉義」.

可是壟斷了微機操作系統的微軟,路徑 用的是 反斜杠 \. 所以在視窗系統的C程序中寫文件路徑時,不得不用 「雙反斜杠」,第一個反斜杠叫 「轉義」(就是下一個字元作特殊解釋),「雙反斜杠」解釋為路徑。

理論上 "xxx/xx"與"xxx\\xx" 沒有什麼區別,但不是所有編譯器都懂。總之,微軟系統你用 「雙反斜杠」保險。

『伍』 txt文件的路徑不對怎麼辦

使用C語言的文件操作函數可以讀寫txt文件,如果使用相對路徑,文件必須放在程序相同的文件夾內。 1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。 2、常式: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include int a; char b,c[100]; int main(){ FILE * fp1 = fopen("input.txt", "r");//打開輸入文件 FILE * fp2 = fopen("output.txt", "w");//打開輸出文件 if (fp1==NULL || fp2==NULL) {//若打開文件失敗則退出 puts("不能打開文件!"); rturn 0; } fscanf(fp1,"%d",&a);//從輸入文件讀取一個整數 b=fgetc(fp1);//從輸入文件讀取一個字元 fgets(c,100,fp1);//從輸入文件讀取一行字元串 printf("%ld",ftell(fp1));//輸出fp1指針當前位置相對於文件首的偏移位元組數 fputs(c,fp2);//向輸出文件寫入一行字元串 fputc(b,fp2);//向輸出文件寫入一個字元 fprintf(fp2,"%d",a);//向輸出文件寫入一個整數 fclose(fp1);//關閉輸入文件 fclose(fp2);//關閉輸出文件,相當於保存 return 0; }

『陸』 C語言文件的讀取和寫入不成功是什麼原因

使用fopen的r方式可以實現讀取,用w+方式可以實現寫入。1.fopen的函數原型:FILE * fopen(const char * path,const char * mode); fopen函數的第一個參數是文件路徑,第二個參數是打開方式,有以下幾種方式:r 以只讀方式打開文件,該文件必須存在。r+ 以可讀寫方式打開文件,該文件必須存在。rb+ 讀寫打開一個二進制文件,允許讀數據。rw+ 讀寫打開一個文本文件,允許讀和寫。w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。 (原來的EOF符不保留)wb 只寫打開或新建一個二進制文件;只允許寫數據。wb+ 讀寫打開或建立一個二進制文件,允許讀和寫。wt+ 讀寫打開或著建立一個文本文件;允許讀寫。at+ 讀寫打開一個文本文件,允許讀或在文本末追加數據。ab+ 讀寫打開一個二進制文件,允許讀或在文件末追加數據。上述的形態字元串都可以再加一個b字元,如rb、w+b或ab+等組合,加入b 字元用來告訴函數庫打開的文件為二進制文件,而非純文字文件。 返回值:文件順利打開後,指向該流的文件指針就會被返回。如果文件打開失敗則返回NULL,並把錯誤代碼存在errno中。

『柒』 C#中如何獲取文件的相對路徑

應用程序路抄:徑string programpath=Application.StartupPath;
string relativepath=fullpath.SubString(programpath.Length);
//其中fullpath為全路徑,不明白歡迎繼續追問

『捌』 C語言在讀取文件的時候顯示文件不存在

1.書寫格式錯誤
fp=fopen("C:\\vc98\\shuju.txt","r");
注意使用了轉義字元「\",具體原因請參考課本
2.要看你的數據的格式,如果你所有的數據長度都是統一的,是可以用read實現讀取固定長度的數據進數組的。
但是如果你的數據長度不統一,有長有短,那麼只能通過讀取數據,然後對讀取的數據處理,得到需要的數據放到數組中。

閱讀全文

與c怎麼讀取文件路徑總是不對相關的資料

熱點內容
245倒角編程怎麼計算 瀏覽:599
可以買生活用品的app有哪些 瀏覽:175
cad在c盤產生的文件夾 瀏覽:541
聯想手機解鎖工具 瀏覽:696
瑞銀3887win10 瀏覽:833
學網路編程哪個好 瀏覽:805
手機vmos導入的文件在哪裡 瀏覽:115
蘋果手機可以把文件傳到華為嗎 瀏覽:63
海川化工下載的文件默認到哪裡 瀏覽:343
學唱粵語歌app 瀏覽:975
qq游戲生死狙擊玩不了 瀏覽:120
win10郵件不顯示圖片 瀏覽:922
口袋妖怪所有版本下載 瀏覽:504
我們身邊都有哪些大數據例子 瀏覽:25
震旦adc307掃描的文件在哪裡 瀏覽:999
圖片打開變成文件 瀏覽:194
松下微單電腦傳文件軟體 瀏覽:574
蘋果藍牙鍵盤surface 瀏覽:170
mindmaplinux 瀏覽:733
oppo手機怎麼連接電腦傳輸數據 瀏覽:624

友情鏈接