字符串流(或boost)是否具有某种智能格式功能
Does stringstream (or boost) have some smart format feature?
我今天写一些业余代码是为了好玩,在做一些事情的同时,我发现了一些有趣的事情,我想以一种听起来和看起来都很好/很棒/很酷的方式来做。
这个想法基本上是在C++中有一个字符串,然后将它传递给一个字符串流(构造ss)。
然后,期望的格式是<int or string> <string>
,您将根据用户输入获得正确的输出,如:
bool ExecuteSendPrivateMessage(int sender, std::string params)
{
std::stringstream sparams(params);
int_or_string receiverid;
std::string message;
sparams >> receiverid >> message;
if (sparams.fail())
{
std::cout << "usage: /send_message_to <userid/username> <message>" << std::endl;
return true;
}
if (int_or_string.HasString())
{
receiverid = GetUseridFromUsername(int_or_string.GetString());
}
SendMessage(receiverid.GetInt(), message);
return true;
}
这在C++中可能吗?或者与C++结合使用Boost?
假设没有用户的名称只有数字字符?
这是一种很有技巧的方法,但我要做的是将receiverid放入字符串流中,然后尝试从字符串流中读取int。如果设置了sstream的失败标志,那么我们必须有一个字符串,所以我们使用初始接收器id。
类似这样的东西:
std::string recieverid;
std::stringstream srecieverid(recieverid);
int irecieverid;
srecieverid >> irecieverid;
if(srecieverid.fail()) {
irecieverid = GetUseridFromUsername(recieverid);
}
SendMessage(irecieverid, message);
这并不是最干净的方法,但它确实有效。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 1d 智能指针不适用于语法 (*)++
- 多态性和功能结合
- 带内存和隔离功能的SQLite
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 优先顺序:智能指针和类析构函数
- 类模板的成员功能的定义在单独的TU中完全专业化
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 如何在C++中获得"静态纯虚拟"功能?
- 两个文件使用彼此的功能-如何解决
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 对于C++中使用智能指针的指针算术限制,有没有一种变通方法
- QML按钮点击功能执行顺序
- 具有小对象优化功能的智能指针
- 如何将自己的智能指针传递到功能
- 模板功能以检查智能指针是否为空
- 字符串流(或boost)是否具有某种智能格式功能
- 获得LNK2001,但智能感知可以找到功能
- 智能感知:不存在从"std::string"到"char"的合适转换功能,那么我该怎么做?
- 为什么Visual Studio的智能感知显示私有成员和功能?