创建包含time_t的字符串时出错
Error creating a string containing a time_t?
我正在尝试创建一个具有当前时间和日期的字符串
time_t t = time(NULL); //get time passed since UNIX epoc
struct tm *currentTime = localtime(&t);
string rightNow = (currentTime->tm_year + 1900) + '-'
+ (currentTime->tm_mon + 1) + '-'
+ currentTime->tm_mday + ' '
+ currentTime->tm_hour + ':'
+ currentTime->tm_min + ':'
+ currentTime->tm_sec;
我得到错误
正在初始化'std::basic_string<_CharT,_Traits,_Alloc>::basic_string(const_CharT*,const_Alloc&)[其中_CharT=char,_Traits=std::char_Traits,_Alloc=std::分配器]'|
我担心字符串中使用的第一个"+"(因为它可能表示串联)是因为它在括号中,这意味着加法吗?尽管我认为问题出在另一行,因为编译器在我给出的最后一行给出了错误。
在C++中,不能使用+运算符连接数字、字符和字符串。要以这种方式连接字符串,请考虑使用stringstream
:
time_t t = time(NULL); //get time passed since UNIX epoc
struct tm *currentTime = localtime(&t);
ostringstream builder;
builder << (currentTime->tm_year + 1900) << '-'
<< (currentTime->tm_mon + 1) << '-'
<< currentTime->tm_mday << ' '
<< currentTime->tm_hour << ':'
<< currentTime->tm_min << ':'
<< currentTime->tm_sec;
string rightNow = builder.str();
或者,考虑使用Boost.Format库,它的语法稍微好一些。
希望这能有所帮助!
相关文章:
- 重载操作程序时出错>>用于类中的字符串 memebr
- C++ 创建包含链表和字符串的对象的链接列表时出错
- 从DLL导出函数,LoadLibrary()需要用TEXT转换的字符串才能编译而不会出错
- 在 Rcpp 中的字符串类型之间转换时出错
- 为什么 stl 字符串C++函数有时出错有时会出错?
- 读取字符串C++的字符时出错
- 读取字符串字符时出错 - 对于数组中的字符串值
- 通过字符串::插入插入字符时出错
- 使用来自串行端口的字符串数据来操作振镜扫描仪在更高的速度下会出错
- 通过 constexpr 中的 'const char *' glvalue 访问字符串文字的值会出错
- 读取字符串字符时出错
- 计算字符串中字符的出现次数时出错
- 在字符串中反转元音时出错
- C++ 使用 Strtok 读取字符串字符时出错
- 在 c++ 中调用将字符串作为参数传递的函数时出错
- 使用 C++Builder 项目读取字符串中的文件时出错
- 在字符串流中使用来自 github 的代码时出错
- C ++ ifstream 无法读取字符串,并且在读取字符时出错
- 需要帮助以了解字符串出错的地方
- cin和字符串出错