2013-02-12 128 views
-1

我正在創建一個簡單的程序,用戶將能夠編輯程序創建的.txt文件,然後程序應該將該文件保存爲.html文檔。我不想使用任何庫。C++ - 使用fstream將txt保存爲html

創建.txt文件:

std::ofstream file("save.txt"); 

我應該怎麼做,而不使用任何unneccesary擴展?

+0

.txt文件和.html文件之間的唯一區別是文件擴展名,.html文件使用比.txt文件更嚴格的單詞子集。那麼,你期望會發生什麼? – 2013-02-12 21:16:13

+2

我完全不理解你的問題。聽起來你所有的程序需要做的就是將擴展名從'.txt'改爲'.html'。 – 2013-02-12 21:16:13

+0

謝謝,Mooing Duck。做出答案,我會標記它。 – 2013-02-12 21:29:20

回答

0

如果你有足夠新的編譯器:

std::ofstream("save.html") << std::ifstream("save.txt"); 

如果你有一箇舊的編譯器:

std::ifstream in("save.txt"); 
std::ofstream out("save.html"); 
out << in; 

然而,這使得文件的全面和完整的精確副本用不同的名稱。我真的建議使用操作系統特定的函數調用來簡單地重命名文件,或者更好的是讓用戶直接將他們的數據輸入到html文件中。

+0

所以如果我要讓用戶直接輸入數據到html文件,這和我將數據輸入到txt文件中一樣? – 2013-02-12 21:41:43

+0

@HenrikSöderlund:如果他們正在以HTML格式將數據輸入到txt文件中,那麼是的。如果他們沒有在文本文件中輸入html數據,那麼你必須告訴我們文本文件中有什麼要回答這個問題。我從來沒有聽說過使用txt文件中間步驟進行網頁開發。 – 2013-02-12 21:44:45

0

將純文本轉換爲HTML有三個注意事項。用戶已經修改了純文本字符串後:

  1. 在純文本字符串到HTML換行符元素(<br/>)全部替換換行符(\n\r\n\r)。您可以使用標準庫string replace方法來執行此操作。
  2. 將修改後的文本字符串包裝在標準HTML文檔結構中(並將標題添加到文檔中):<!DOCTYPE html><html><head><title> -- TITLE GOES HERE -- </title><body> -- TEXT GOES HERE -- </body></html>
  3. 將該字符串另存爲文本文件...只需使用擴展名.html而不是.txt即可。
+0

哦,將原始文本轉換爲html?這是我沒有發生的一種解釋。我們必須從用戶那裏獲得更多的細節。 – 2013-02-12 21:45:55