Re: [問題] copy檔案的語法

看板C_and_CPP作者 (MILK BABY)時間15年前 (2010/10/12 13:05), 編輯推噓17(18134)
留言53則, 10人參與, 最新討論串2/2 (看更多)
※ 引述《david741002 (MILK BABY)》之銘言: : 請問有哪個語法可以將我所選擇的檔案 由甲地copy到乙地 : 我使用VC++ 2008 void CopyFile(string createFilePath) { string copyfilename; string filename; cout << "Please key in source location:"; cin >> copyfilename; copyfilename = createFilePath + "\\" + copyfilename ; cout << "Please key in target location:"; cin >> filename; filename = createFilePath + "\\" + filename ; CopyFile(copyfilename,filename); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.182.36

10/12 13:09, , 1F
我目的要將copyfilename的檔案複製到filename裡
10/12 13:09, 1F

10/12 13:12, , 2F
Good遞迴語法XD
10/12 13:12, 2F

10/12 13:13, , 3F
哪裡遞迴 @@?
10/12 13:13, 3F

10/12 13:15, , 4F
明明就有遞迴
10/12 13:15, 4F

10/12 13:21, , 5F
把CopyFile(copyfilename,filename);的filename去掉
10/12 13:21, 5F

10/12 13:21, , 6F
說不定可以跑
10/12 13:21, 6F

10/12 13:22, , 7F
love神意思是,因為有名稱修飾,所以其實是兩個CopyFile?
10/12 13:22, 7F

10/12 13:23, , 8F
果然那是問題所在...你呼叫到自己了
10/12 13:23, 8F

10/12 13:24, , 9F
請寫 ::CopyFile(copyfilename,filename)
10/12 13:24, 9F

10/12 13:27, , 10F
原因如二樓所言 你這個函式和 win32 API 撞名了
10/12 13:27, 10F

10/12 13:27, , 11F
所以變成了個你看不出來的遞迴 XD
10/12 13:27, 11F

10/12 13:28, , 12F
也因為撞名了所以才得要加 :: 表示你呼叫的是外面那個東西
10/12 13:28, 12F

10/12 13:28, , 13F
CopyFile還有第三個引數唷
10/12 13:28, 13F

10/12 13:31, , 14F
設定含數名稱時加個My或什麼的像MyCopyFile
10/12 13:31, 14F

10/12 13:31, , 15F
才不會跟系統同名
10/12 13:31, 15F

10/12 13:36, , 16F
CopyFile(copyfilename,filename);的filename去掉
10/12 13:36, 16F

10/12 13:37, , 17F
可以跑 不過這樣我要怎指定我要存放的位子??
10/12 13:37, 17F

10/12 13:41, , 18F
filename去掉是隨便說說的啦XD
10/12 13:41, 18F

10/12 13:44, , 19F
改掉遞迴那錯誤 'CopyFileW' : 函式不使用 2 引數
10/12 13:44, 19F

10/12 13:44, , 20F
出現這樣的錯誤
10/12 13:44, 20F

10/12 13:45, , 21F
即使加上第三個引數 也是一樣
10/12 13:45, 21F

10/12 13:45, , 22F
差點忘了 Win API 都是有 Macro 這件事...所以打從一開始
10/12 13:45, 22F

10/12 13:45, , 23F
第三個引數隨便寫個1或0就好了
10/12 13:45, 23F

10/12 13:46, , 24F
你就不該自己寫個函數取 CopyFile 這個人家用過的名字
10/12 13:46, 24F

10/12 14:24, , 25F
還是不懂耶, 因為他不是多載嗎, 自己寫的只有一個參數
10/12 14:24, 25F

10/12 14:24, , 26F
而Win32 API 似乎是 2 個參數以上, 這樣還能遞迴 ?
10/12 14:24, 26F

10/12 14:25, , 27F
不過Win32 API的CopyFile應該沒有參數為string的版本
10/12 14:25, 27F

10/12 14:26, , 28F
對, 所以應該是會被視為遞迴呼叫, 然後會說參數數目不
10/12 14:26, 28F

10/12 14:26, , 29F
符規定
10/12 14:26, 29F

10/12 14:28, , 30F
上面我亂了...現在是編譯不過不是真的已經在跑...
10/12 14:28, 30F

10/12 14:43, , 31F
1個class可以跟WinAPI多載嗎?
10/12 14:43, 31F

10/12 14:47, , 32F
這看起來像是全域函式阿, 就算是member function在全
10/12 14:47, 32F

10/12 14:49, , 33F
域的Win32 API名稱也會可見, 變成有多個可呼叫個體
10/12 14:49, 33F

10/12 14:51, , 34F
阿..class內名稱會蓋掉
10/12 14:51, 34F

10/12 14:56, , 35F
如果可以多載那就不用多個CopyFileEx了
10/12 14:56, 35F

10/12 15:23, , 36F
似乎CopyFile行不通耶!!!還有其他方法嗎???
10/12 15:23, 36F

10/12 15:35, , 37F

10/12 15:35, , 38F
有一種板友推這麼多都是白講的感覺... XD
10/12 15:35, 38F

10/12 15:40, , 39F
那是語言的背景不同, 如果原po這樣寫可以, 表示他是用
10/12 15:40, 39F

10/12 15:41, , 40F
C++的語法去編
10/12 15:41, 40F

10/12 16:10, , 41F
不過我記得 vs2008 沒辦法寫 C 程式的樣子...
10/12 16:10, 41F

10/12 16:11, , 42F
把副檔名改成 .c 就會用C的規則去編譯 (大概...)
10/12 16:11, 42F

10/12 16:12, , 43F
我也這樣玩過...不過確定的是VC6可以
10/12 16:12, 43F

10/12 17:43, , 44F
如果C++/CLI的話應該兩三行就解決XD
10/12 17:43, 44F

10/12 18:10, , 45F

10/12 18:44, , 46F
為什麼老是有人愛跟關鍵字或lib函數取同名
10/12 18:44, 46F

10/12 18:44, , 47F
簡直就像生了一個小孩然後取名叫小孩一樣幽默
10/12 18:44, 47F

10/12 19:50, , 48F
推樓上,不過相信原po不是故意的
10/12 19:50, 48F

10/13 14:10, , 49F
同校同課我給噓 拿作業來問
10/13 14:10, 49F

10/13 14:54, , 50F
樓上沒必要噓吧,原po至少有試著寫出來,誰沒當過新手?
10/13 14:54, 50F

10/13 14:56, , 51F
我可不是噓code 我是噓心態不可取...
10/13 14:56, 51F

10/13 21:08, , 52F
問作業心態有什麼問題? 伸code才有問題吧....
10/13 21:08, 52F

10/13 23:03, , 53F
原po看起來算是有努力過了 至少不是只po題目就求答案 XD
10/13 23:03, 53F
文章代碼(AID): #1Ci-ocun (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Ci-ocun (C_and_CPP)