将字符数组转换为时间结构
Convert a char Array to a time structure
>我在当前的项目中使用了一个结构:用于时间信息
struct SFileDateTime
{
uint8 nYear; // Years since 1900
uint8 nMonth; // Month [1, 12]
uint8 nDay; // Day of month [1, 31]
uint8 nHour; // Hours [0, 23]
uint8 nMinute; // Minutes [0, 59]
uint8 nSecond; // Seconds [0, 59]
};
typedef unsigned char uint8;
在某些情况下,我从外部调用中得到的只是一个日期字符数组
char [17] "1998012609260000"
我现在遇到了将字符数组带到 SFileDateTime 结构的问题。我尝试了一个memcpy呼叫,但这会导致崩溃。
我目前不明白为什么 memcpy 不起作用。还有其他方法可以转换它吗? 选角是正确的选择吗?
您在问题下方的评论中有 2 个很棒的答案。希望这对您有所帮助。
typedef unsigned char uint8; //Max size is 255 in decimal ( 1111 1111 )
struct SFileDateTime
{
uint8 nYear; // Years since 1900
uint8 nMonth; // Month [1, 12]
uint8 nDay; // Day of month [1, 31]
uint8 nHour[20]; // Hours [0, 23]
uint8 nMinute[]; // Minutes [0, 59]
uint8 nSecond; // Seconds [0, 59]
};
int main()
{
SFileDateTime nene;
nene.nYear = 33; // ASCII code for !
nene.nMonth = 'M'; // One char which is 77 in ASCII
nene.nDay = 255; // max number in ASCII which is space
nene.nSecond = 256 ; // No go||=== warning: large integer
//implicitly truncated to unsigned type [-Woverflow]|
char one[] = "Hello";
cout<<one<<endl;
nene.nHour[0] = 'A';
nene.nHour[1] = 'b';
nene.nHour[2] = 'b';
nene.nHour[3] = 'y';
return 0;
}
如果要使用 strcpytypedef char
如果你想使用你的结构,U应该把它转换为单个字符。
在这里你可以找到一个很好的参考:https://en.cppreference.com/w/c/chrono/localtime
相关文章:
- C++ 中具有 O(1) 搜索时间复杂度的数据结构
- 将字符数组转换为时间结构
- 保持排序的数据结构,允许log N插入时间,并且可以返回我在log N中查找的元素的索引
- 结构时间规范可以重复使用纳米睡眠吗?
- 将结构时间规范添加到类(似乎没有其他类型的)会导致EXEC_BAD_ACCESS
- 如何制作递归编译时间变异结构模板
- 哪种控制结构所需的时间复杂度更低?
- 在输入结构对象的输入过程中运行时间错误
- C 自定义时间日期结构到UTC时期
- 结构成员的地址作为编译时间常数之间的差异
- 使用结构显示军事时间,并将一秒钟的时间添加到用户输入(C )中
- 是否有具有对数时间插入、删除和查找(带距离)的排序数据结构
- C++中结构的存储持续时间和成员初始化
- 向C++中的任何日期结构添加一定时间量
- 如何在另一个结构中保存 GetLocalTime 时间
- 在C++中将数据和时间分配给文件时间结构
- 如何从乌龙龙毫秒创建系统时间结构
- VC++ 中的文件时间结构
- 正在查找具有tm以外的成员对象的另一个时间结构
- c++时间结构错误