我做C++中的服务器应用程序,并且将其提供的HTML页面作为响应于HTTP请求。C++标准替代(S)的printf
的问题是,目前,我的网页被写在我的代码常量字符串,我字符串本身的写作过程中插入使用<<
运营商和std::stringstream
,还是其他字符串。见的例子得到更清楚:
std::string first("foo");
std::string second("bar");
std::string third("foobar");
std::stringstream ss;
ss << "<html>\n"
"<head>\n"
"<title>Bitches Brew</title>\n"
"</head>\n"
"<body>\n"
"First string: "
<< first << "\n"
"Second string: "
<< second << "\n"
"Third string: "
<< third << "\n"
"</body>\n"
"</html>";
偏偏虽然我不能简单的东西,在一个文件中的内容,因为与HTML结构混合的数据将在执行过程中发生改变。这意味着我不能简单地写整个页面在一个文件中,同时first
,second
,并third
的字符串值,因为这些值会动态变化。
对于第一个请求我会发送页面first = "foo";
,而在第二个请求我会有first = "anything else"
。
而且,我可以简单地从stdio.h
回去sscanf/sprintf
并插入我想要的文字 - 我只需要更换正确的格式(%s
)字符串的差距,从文件中读取HTML结构,以及插入任何我想做的。
我想做到这一点在C++中,不C库函数,但我无法弄清楚用来做什么。什么是这种情况的C++标准解决?
你覆盖' \ n '部分。 – chris
@chris感谢您指出,但它并没有真正影响到这里的问题。无论如何,我编辑过代码。 – Rubens
@Rubens我不知道我的理解句子“偏偏虽然我不能简单的东西,在一个文件中的内容,因为与HTML结构混合的数据将在执行过程中发生改变。” - 请你澄清一下吗?你想达到什么目的? –