2013-02-12 122 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