Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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++ 使用localtime时访问tm结构的成员_C++_Pointers_Struct - Fatal编程技术网

C++ 使用localtime时访问tm结构的成员

C++ 使用localtime时访问tm结构的成员,c++,pointers,struct,C++,Pointers,Struct,我尝试使用以下代码以HH:MM:SS格式返回时间。我以前使用的是localtime,但是考虑到这一点,我认为我应该切换到localtime\u s如下: time_t t; struct tm now; localtime_s(&now, &t); std::string stimeNow = std::to_string(now->tm_hour) + ":" + std::to_string(now->tm_min) +":" + std::to_string(n

我尝试使用以下代码以HH:MM:SS格式返回时间。我以前使用的是
localtime
,但是考虑到这一点,我认为我应该切换到
localtime\u s
如下:

time_t t;
struct tm now;
localtime_s(&now, &t);
std::string stimeNow = std::to_string(now->tm_hour) + ":" + std::to_string(now->tm_min) +":" + std::to_string(now->tm_sec);
然而MSVC uderlines
now->tm_hour
now->tm_min
now->tm_sec
,说

Error: expression must have a pointer type
当我编译它时,我收到以下错误:

error C2819: type 'tm' does not have an overloaded member 'operator ->'

我对指针和结构非常笨拙,所以有人能告诉我哪里出了问题以及如何修复它吗。

下面是它的用法示例:

/* localtime example */
  #include <stdio.h>      /* puts, printf */
  #include <time.h>       /* time_t, struct tm, time, localtime */

int main ()
{
    time_t rawtime;
    struct tm * timeinfo;
    time (&rawtime);
    timeinfo = localtime (&rawtime);
    printf ("Current local time and date: %s", asctime(timeinfo));
    return 0;
  }
/*本地时间示例*/
#包括/*看跌期权,printf*/
#包括/*time\u t、struct tm、time、localtime*/
int main()
{
时间与时间;
结构tm*时间信息;
时间(&rawtime);
timeinfo=localtime(&rawtime);
printf(“当前本地时间和日期:%s”,asctime(timeinfo));
返回0;
}
另外,通过向源文件中添加以下代码,可以禁用VS中不推荐使用的警告(错误):

#pragma warning (disable : <The error or warning code it gives when you use the unsafe version>)
#杂注警告(禁用:)

我已经试过了,尽管它编译的MSVC仍然在语句下面加下划线,并且返回-1:-1:-1。在使用它之前,你需要初始化
t
,或者传递
nullptr
。如果你读了这个问题,你会发现我试图避免
localtime