小编kus*_*nni的帖子

strerror_s、strcpy_s、localtime_s、sprintf_s 未在此范围内声明?

我编写了一个跨平台代码,给出了当前日期(mm/dd/yy)和时间(hh/mm/ss)和完整日期(yyyymmdd),此代码在Windows(MSVS2015)中工作,但在Linux(GCC)中不起作用4.8.5)。

\n\n

我的代码是

\n\n
#include <iostream> \n#ifdef WIN32\n#include <windows.h>\n#else\n#include <cerrno>\n#endif\n\n#ifdef WIN32\n#include <direct.h>\n#include <io.h>\n#else\n#include <dirent.h>\n#include <stdio.h>\n#include <unistd.h>\n#endif\n#include <ctime>\n#include <bitset>\n#include <cstdlib>  /*atol*/\n#include <iomanip>\n#include <stdexcept>\n#include <cstring>\n#include <cstdio>\n#include <fstream>\nusing namespace std;\n\ntemplate <size_t size>\nvoid GetNowDateTime(char(&c_date)[size], char(&c_time)[size])\n{\n   time_t t;\n   struct tm now;\n   strcpy_s(c_date, "00/00/00");\n   strcpy_s(c_time, "00:00:00");\n   time(&t);\n  if (localtime_s(&now, &t) != 0) return;\n char temp[3];\n sprintf_s(temp, "%.2d", now.tm_mon + 1);\n memcpy(c_date, temp, 2);\n sprintf_s(temp, "%.2d", now.tm_mday);\n memcpy(c_date + 3, temp, 2);\n sprintf_s(temp, "%.2d", now.tm_year - 100);\n memcpy(c_date + 6, temp, 2);\n sprintf_s(temp, "%.2d", now.tm_hour);\n memcpy(c_time, temp, …
Run Code Online (Sandbox Code Playgroud)

c++ linux gcc gnu g++

4
推荐指数
1
解决办法
6315
查看次数

标签 统计

c++ ×1

g++ ×1

gcc ×1

gnu ×1

linux ×1