Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何用自己的值填充tm结构,然后打印出来?_C++_Iomanip - Fatal编程技术网

C++ 如何用自己的值填充tm结构,然后打印出来?

C++ 如何用自己的值填充tm结构,然后打印出来?,c++,iomanip,C++,Iomanip,我想用小时、分钟和秒的自定义值填充我的tm结构,然后使用std::put_time()输出它 我的代码位于保存日期和时间的自定义类的to_字符串函数中: std::string Gregorian::to_string() const { std::ostringstream oss; struct std::tm *tmTime; //This is where I add my custom time values tmTime->tm_hour =

我想用小时、分钟和秒的自定义值填充我的tm结构,然后使用std::put_time()输出它

我的代码位于保存日期和时间的自定义类的to_字符串函数中:

std::string Gregorian::to_string() const {
    std::ostringstream oss;
    struct std::tm *tmTime;

    //This is where I add my custom time values
    tmTime->tm_hour = hour_;
    tmTime->tm_min = minute_;
    tmTime->tm_sec = second_;   


    oss << civil::day_name( day_of_week( to_jd() ) ) << ", ";

    oss << gregorian_month_name( month_ ) << ' ' << (unsigned) day_ << ' ';
    if( year_ <= 0 )
        oss << (-year_ + 1) << " BCE";
    else
        oss << year_ << " CE, ";

    //i'm trying to use std::put_time here but it prints nothing
    oss << std::put_time(tmTime, "%r");

    return oss.str();
}
“CE”后面的空格是时间应该在哪里

另外,将其更改为:

struct std::tm tmTime;


    tmTime.tm_hour = hour_;
    tmTime.tm_min = minute_;
    tmTime.tm_sec = second_;
以及:

oss在这行中

struct std::tm *tmTime;
您有一个尚未初始化的指针。在接下来的几行中,您将使用未初始化的指针访问结构的成员。这就是未定义行为的原因

正如πάντα的评论中所建议的那样ῥεῖ, 您需要使用:

struct std::tm tmTime;
tmTime.tm_hour = hour_;
tmTime.tm_min = minute_;
tmTime.tm_sec = second_;
在这方面,

struct std::tm *tmTime;
您有一个尚未初始化的指针。在接下来的几行中,您将使用未初始化的指针访问结构的成员。这就是未定义行为的原因

正如πάντα的评论中所建议的那样ῥεῖ, 您需要使用:

struct std::tm tmTime;
tmTime.tm_hour = hour_;
tmTime.tm_min = minute_;
tmTime.tm_sec = second_;
在这方面,

struct std::tm *tmTime;
您有一个尚未初始化的指针。在接下来的几行中,您将使用未初始化的指针访问结构的成员。这就是未定义行为的原因

正如πάντα的评论中所建议的那样ῥεῖ, 您需要使用:

struct std::tm tmTime;
tmTime.tm_hour = hour_;
tmTime.tm_min = minute_;
tmTime.tm_sec = second_;
在这方面,

struct std::tm *tmTime;
您有一个尚未初始化的指针。在接下来的几行中,您将使用未初始化的指针访问结构的成员。这就是未定义行为的原因

正如πάντα的评论中所建议的那样ῥεῖ, 您需要使用:

struct std::tm tmTime;
tmTime.tm_hour = hour_;
tmTime.tm_min = minute_;
tmTime.tm_sec = second_;
我同意,这应该对你有用。 你在用什么编译器?您可能有未初始化的
小时
分钟
。或者,
put_time
需要将
tm_mday
tm_mon
、和
tm_year
设置为法定值以输出时间

通过评论的方式,你似乎在加倍增加你的年/月/日信息。我认为你应该能够做一些类似于
put_time(tmTime,tmTime->tm_year>-1990?”%A,%B%e%Y AD,%r:“%A,%B%e%Y BC,%r”)

我同意,这应该适合你。 你在用什么编译器?您可能有未初始化的
小时
分钟
。或者,
put_time
需要将
tm_mday
tm_mon
、和
tm_year
设置为法定值以输出时间

通过评论的方式,你似乎在加倍增加你的年/月/日信息。我认为你应该能够做一些类似于
put_time(tmTime,tmTime->tm_year>-1990?”%A,%B%e%Y AD,%r:“%A,%B%e%Y BC,%r”)

我同意,这应该适合你。 你在用什么编译器?您可能有未初始化的
小时
分钟
。或者,
put_time
需要将
tm_mday
tm_mon
、和
tm_year
设置为法定值以输出时间

通过评论的方式,你似乎在加倍增加你的年/月/日信息。我认为你应该能够做一些类似于
put_time(tmTime,tmTime->tm_year>-1990?”%A,%B%e%Y AD,%r:“%A,%B%e%Y BC,%r”)

我同意,这应该适合你。 你在用什么编译器?您可能有未初始化的
小时
分钟
。或者,
put_time
需要将
tm_mday
tm_mon
、和
tm_year
设置为法定值以输出时间


通过评论的方式,你似乎在加倍增加你的年/月/日信息。我认为你应该能够做一些类似于
put_time(tmTime,tmTime->tm_year>-1990?”%A,%B%e%Y AD,%r:“%A,%B%e%Y BC,%r”)

问题出在哪里?您有什么输出?更改
struct std::tm*tmTime
struct std::tm tmTime并使用
tmTime.tm\u hour=hour等。您正在写入未初始化的内存。问题出在哪里?您有什么输出?更改
struct std::tm*tmTime
struct std::tm tmTime并使用
tmTime.tm\u hour=hour等。您正在写入未初始化的内存。问题出在哪里?您有什么输出?更改
struct std::tm*tmTime
struct std::tm tmTime并使用
tmTime.tm\u hour=hour等。您正在写入未初始化的内存。问题出在哪里?您有什么输出?更改
struct std::tm*tmTime
struct std::tm tmTime并使用
tmTime.tm\u hour=hour等等。你在写未初始化的内存。你知道为什么这对我不起作用吗?这是我最初使用的方式。@kburlz,您应该在
tmTime
中设置所有字段的值。
std::put_time
也可能取决于其他字段的值。你知道为什么这对我不起作用吗?这是我最初使用的方式。@kburlz,您应该在
tmTime
中设置所有字段的值。
std::put_time
也可能取决于其他字段的值。你知道为什么这对我不起作用吗?这是我最初使用的方式。@kburlz,您应该在
tmTime
中设置所有字段的值。
std::put_time
也可能取决于其他字段的值。你知道为什么这对我不起作用吗?这是我最初使用的方式。@kburlz,您应该在
tmTime
中设置所有字段的值。
std::put_time
也可能取决于其他字段的值。