[問題] fstream檔案莫名開啟失敗

看板C_and_CPP作者時間8年前 (2015/08/01 15:56), 8年前編輯推噓5(504)
留言9則, 5人參與, 最新討論串1/1
最近在VS2012上作C++檔案讀取的練習, 語法方面沒有問題 但就是預期的結果跑不出來, 以下是程式碼: #include"stdafx.h" #include<iostream> #include<fstream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { char chtem; fstream io("d:\\123.txt", ios::in | ios::out); if (!io){ cout << "File open failed!\n"; } else{ cout << "File open successfully!\n"; while (io.get(chtem)){ cout << chtem; } } io.close(); system("pause"); return 0; } 輸出結果: File open failed! 作為測試的123.txt裡面就只有幾個英文字母而已 IDE也沒有任何錯誤訊息, 但io的值始終等於0 明明之前用C的fopen函數都OK, 但用C++來寫就有問題 有人跟我遇到同樣的問題嗎? -- ▁ ▁▁▂▄▆▆▆▅▃ ▄▄▄ .︶. ██▊_▂_██ ▆▆▆▃▃▃ ▃▃▃ ▃ ▃▃▃ ◤ ▅ ▄▄▄╭╮▄▄▄▄▄ ║ {︶} ║ ◥▉ ▃▃▄ ▄▄▄ ︶ ︶ vcfsvjf -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.9.1.194 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1438415784.A.235.html

08/01 19:48, , 1F
你需要 ios::trunc
08/01 19:48, 1F

08/02 11:38, , 2F
樓上那樣不是會把檔案清空嗎
08/02 11:38, 2F
感謝回答 ios::trunc 我有試過一樣不行 最後才發現是我把檔名打錯了 打成 123.txt.txt 難怪讀不到 ※ 編輯: xxxx5801 (39.9.1.194), 08/02/2015 15:40:14

08/02 16:59, , 3F
...............
08/02 16:59, 3F

08/02 17:51, , 4F
這算fstream的致命問題,你其實很難搞懂為什麼失敗 XD
08/02 17:51, 4F

08/02 17:51, , 5F
有興趣的話順手查察strerror(errno)怎麼運作的
08/02 17:51, 5F

08/02 17:52, , 6F
他在fstream失敗的時候一樣會記錄下錯誤原因
08/02 17:52, 6F

08/02 17:52, , 7F
這遠比單純看io是不是nulptr來的好得多
08/02 17:52, 7F

08/04 13:21, , 8F
我沒有仔細看內文 以為是要建立新檔案 Orz
08/04 13:21, 8F

08/09 04:06, , 9F
.........
08/09 04:06, 9F
文章代碼(AID): #1Ll7ke8r (C_and_CPP)