我可以創建一個文本文件中使用的ofstream如下,到指定的路徑:的ofstream和ifstream的路徑作品用C++編寫不讀書生成器
std::string path = "c:\users\john\file.txt";
std::string str = "some text";
ofstream myfile;
myfile.open (path);
myfile << str; // write string to text file
myfile.close(); //close file
當我嘗試打開/讀取文件的系統似乎打開文件,但在這裏拋出「找不到數據」異常......即使文件在那裏幷包含文本。
std::string line = "";
std::string str = "";
std::string path = "c:\users\john\file.txt";
ifstream file (path);
if (file.is_open())
{
while (getline (file,line))
{
str = str + line;
}
file.close();
if (str == "")
{
throw(Exception("Error: No data found..."));
}
}
else
throw(Exception("Error: File not found..."));
這似乎只是試圖從非debug文件夾中的其他一些位置讀取時發生......
所以,如果我可以在用戶目錄下創建文件爲什麼不能我讀過了嗎?
誰能幫助?
UPDATE:
我剛剛發現,如果寫功能,運行和讀取功能之後,隨着應用程序仍在運行,它的工作原理運行。但是,如果寫入函數運行,則應用程序關閉並重新打開讀取函數,然後如上所述失敗。
不應該這是'std :: string str =「一些文本」;'? –
'std :: string path =「c:\ users \ john \ file.txt」;'應該是'std :: string path =「c:\\ users \\ john \\ file.txt」;'你也從不檢查'myfile.open(path);'是否在寫入時工作。 –
什麼是getline?當你使用std :: prefix作爲其他stl結構時,缺乏std :: prefix讓我懷疑它是std :: getline還是定製的東西。可能有一個隱藏在那裏的錯誤。 – JeremiahB