我正在用 C++ 做一个服务器应用程序,它提供一个 HTML 页面作为对 HTTP 请求的响应。
问题是,目前,我的网页在我的代码中被写为一个常量字符串,我使用<<
运算符 and插入其他字符串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"
.
另外,我可以简单地返回sscanf/sprintf
fromstdio.h
并插入我想要的文本——我只需要用正确的格式 ( %s
) 替换字符串间隙,从文件中读取 HTML 结构,然后插入我想要的任何内容。
我想用 C++ 做这个,没有 C 库函数,但我不知道用什么来做这个。对此的 C++标准解决方案是什么?