我知道如何遍歷argv參數,但我想要做的是採用文件路徑並在我的ifstream中使用該參數,並確保它是正確的格式(.DAT),但對於我的ofstream,使用完全相同的路徑但帶有.txt擴展名。如何從argv獲取文件名並將其與ifstream一起使用/將其更改爲txt forstream?
回答
我會通過所需的「基本」名稱作爲參數。然後,當您嘗試將其作爲ifstream
打開時,請自行添加.DAT
擴展名並檢查文件是否存在。如果是這樣,只需追加.txt
即可,並寫入該文件。
例如,你會打電話:myapp.exe inout
然後,你會檢查輸入文件名:
std::ifstream ifs(std::string(argv[1]) + ".dat"); // reads from inout.dat
if (ifs.fail()) ...
std::ofstream ofs(std::string(argv[1]) + ".txt"); // writes to inout.txt
if (ofs.fail()) ...
編輯:您已經添加了重要的細節,你拖着.dat
文件到你的可執行文件在這種情況下,您必須自己移除擴展名。像這樣的東西應該工作(但不容錯!):
std::string basename = argv[1]; // take the whole path, including dat extension (DAT EXTENSION!)
basename.resize(basename.length() - 3); // remove dat extension (hah!)
std::string outname = basename + "txt"; // add the output extension
注:此代碼是未經測試,不穩健,在最。它假設你通過它的每個文件都有一個三個字母的擴展名。
現在,我只是將.DAT文件拖到我的可執行文件上。生成的argv是一個文件路徑的列表,其中包含路徑 – MyNameIsKhan 2013-02-28 16:03:24
中的.DAT,然後從該字符串的末尾刪除「.dat」,並替換爲「.txt」 – 2013-02-28 16:08:24
我會通過調用rfind來查找參數中最後一次出現「.DAT」的位置,然後獲得一個子字符串到結果位置,您可以在其中添加.txt,如下所示:
string fullPath = string(argv[1]);
size_t pos = fullPath.rfind(".DAT");
if (pos == string::npos)
{
//fail
}else{
string outfilePath = (fullPath.substr(0,pos)).append(".txt");
//write to file
}
- 1. 如何將.txt文件轉換爲jar並將其讀取
- 2. 將ifstream更改爲整數(從.txt文件加載後)C++
- 3. 獲取文件名並將其移動
- 4. 從Url獲取值並將其保存在txt文件中
- 5. 將* txt導入到工作表並將其命名爲* txt文件名
- 6. 我如何更改url鏈接並將其與硒一起使用
- 7. Kendo上傳 - 更改文件名並將其取回
- 8. 將SQL數據庫導出爲CSV文件並將其與WEKA一起使用
- 9. 如何捕獲event.keyCode並將其更改爲另一個keyCode?
- 10. 批處理文件獲取文件名並將其重命名
- 11. 從文件中讀取一個文件並將其更改回文件
- 12. 加載TGA文件並將其與OpenGL一起使用
- 13. 獲取數據,並將其與值從
- 14. 字的實例,並將其更改爲文件名
- 15. 如何獲取文件並使用Node.js和Postman將其上傳
- 16. 如何獲取我的文件夾路徑名並將其與我的文件名連接起來?
- 17. 從txt文件獲取變量並將它們與BATCH一起運行循環
- 18. 從一個txt文件中讀取值,並將其用於文本視圖
- 19. 從.txt文件讀取數據並將其存儲在JTable中
- 20. 讀取外部txt文件並將其製作爲對象
- 21. 讀取輸入txt文件並將其格式化爲c
- 22. 如何從URL中讀取txt文件並將其用作字符串?
- 23. 如何使用JavaScript單擊按鈕時更改文件名並將其下載
- 24. 如何從txt文件中提取數據並將其重命名爲較小的文件
- 25. 從txt讀取數值。文件,並將其與條件進行比較Python
- 26. 如何將QString作爲文件位置並獲取其目錄
- 27. 如何從tkinter獲取條目並將其打印在txt文檔中?
- 28. linux如何將文件名更改爲其文件夾的名稱?
- 29. 如何僅獲取文件名,將其分配給變量並稍後使用?
- 30. 使用JavaScript獲取當前完整的URL並將其與jQuery一起使用
所以製作一個字符串的副本並將「.txt」追加到最後?你遇到什麼麻煩?請顯示你的代碼。 – Celada 2013-02-28 16:01:21
參數是完整的文件路徑 – MyNameIsKhan 2013-02-28 16:03:47