-
答案是肯定的。 你的 fp 是乙個全域性變數,全域性變數是在 main 之前構造的,這意味著 fp 在你 cin 之前已經嘗試過開啟檔案,此時名稱還是空的,所以自然不能。
void main();
-
在 main 中,在 cin 之後定義 FP! 否則,當然,您無法開啟名稱為空字串的檔案。 注意 name 的第乙個 Guest 字元是 0,後來都是 0,當檔案開啟並執行進入 main 時,輸入檔名是沒有用的。
都錯了,是時候彌補了!
-
用路徑攔截不好,太講究了。
-
你可以把檔名儲存為字元或字串的陣列,然後把陣列作為引數傳遞給函式來讀,我有一段像**這樣的段落,你可以看看。
char * week[6]=;字串陣列表示檔名,該檔名被定義為字元通道陣列。
下面是如何使用 prototype 函式讀取這些檔案的原型。
void gtreenode::creategtree(gtreenode *>char *x) x 是上面定義的字元通道陣列。
else if(a==")")
top--;s 和 d 是未堆疊的。
else if(a==",")
d[top]++
else;如果你還是不明白,可以把我的程式源**發到你的郵箱裡,好好看看,我的郵箱dww
-
讀取檔案的中文名不是乙個引數,根據你的要求將檔名拼寫成對應的字串面子改樣是不行的。
STL 可以使用 StringStream。
stringstream ss;
ss “檔名 < 如果 i 是 1,它將是”檔名 1”。
MFC 的 csstring 中有乙個 format 方法,可以格式化字串,比較方便。
-
假設檔名是 file1、file2、file3...。因此,首先建立乙個字元陣列 char filename[max name]; 最大名稱取決於您的具體情況。
然後給出乙個整數變數 int no = 1;
要讀取,首先獲取檔名,最好先獲取 0 陣列。
for(no = 1;no < max_no;no++) 最大值 no 取決於您擁有的檔案數量。
新增字尾不是事實嗎?
看看 sprintf 函式就知道了。
-
1. 獲取不使用 MFC 的程式(包括子目錄)中目錄中的所有檔名。 將檔名放入足夠大的緩衝區中,以容納所有檔名。
函式的輸入是要找到的根目錄,輸出是儲存所有檔名的緩衝區。
演算法:使用遞迴。
2. **: void FindFileIndir(char* rootdir, char* strret).
strcat(filepathname, "*");
is directory
if( (file_attribute_directory)
strcmp(, ".") &strcmp(, "..") )
else if( strcmp(, ".") &strcmp(, "..") )
while( !bsearchfinished )
else if( strcmp(, ".") &strcmp(, "..") )
elseelse
bsearchfinished = true; //terminate search}}
findclose(hsearch);}
-
使用字元陣列儲存字串。
首先找到字串到字串結束標誌'\0'第乙個字元之前的最後乙個字元,然後是迴圈,從後到前找到'\\'找到帶有下標 k 的位置後,它是'\\'只要打破迴圈。
然後將下標 k 的位置寫入結束標誌中'\0'
-
通過尋找最後乙個'\\'(strrchr() 似乎是這個函式),然後被截斷;
-
找到最後乙個'\\'(strrchr() 似乎是這個函式),然後被截斷;
char[30] str = "c:/abc/def/";
strrchr(str, '/')[0] = '\0';
現在 STR 是"c:/abc/def"
-
你能再詳細說明一下嗎? 讓我們舉個例子!
-
1. 在Linux平台上,可以使用目錄操作功能讀取當前目錄中的檔案
包括 Windows 開發工具沒有此標頭檔案 include
#include
main()
closedir(dir);關閉目錄指標}2,在Windows平台下,如VC也有類似的操作功能,如:
#include
#include
using namespace std;
#include
void main()
findclose(hfind);}
-
如果是 Windows,則有乙個 API 用於遍歷檔案並在遍歷時放入檔案。
有兩種型別的文件。 一種是文字,另一種是二進位的專用格式。 文字檔案可以使用任何文字器開啟,並且必須使用專用程式開啟二進位檔案。 >>>More