gpt4 book ai didi

c++ - 如何在 C++ 中将日期读入结构?

转载 作者:行者123 更新时间:2023-11-28 00:39:12 26 4
gpt4 key购买 nike

我有一个 csv 数据,它包含这个结构:

2345678 Meier   Hans    12.10.1985  2.4
int, char[],char[], date,float

我想用这些数据类型从这一行创建一个结构,我必须将结构放入一个数组中,现在当我读取日期时,我应该在结构中使用什么变量类型?以及如何将单个日、月和年数字读入我的类型中?是否有在每个点 (".") 处拆分的拆分函数?我应该使用“struct tm ts”并将日期月份和年份分配给 ts.constants 吗? (ts_mday;ts_mmonth 等。)

到目前为止我做了什么:

#include <fstream>
#include <stdio.h>
#include <iostream>
#include <ctime>
using namespace std;

int main()
{
struct studentendaten {
int matrnr;
char[] name;
char[] vorname;
struct tm ts;
ts.tm_mday;
ts.tm_mon;
ts.tm_year;
float note;
}


FILE * pFile;
int ch;
int n = 0;
pFile=fopen("studentendaten.txt","r");
if (pFile==nullptr) perror ("Error opening file");
else
{
while (ch != EOF)
{
ch = fgetc (pFile);
if (ch == ';') {n++;}
putchar(ch);
}
fclose (pFile);
}


return 0;
}

最佳答案

您可以使用 strptime() 来解析日期字符串并将其存储在 tm 结构中。 tm 结构包含日、月和年的字段。请记住,一个月中的第几天从 0 到 11,年份从 1900 开始。使用 strftime() 将 tm 结构转换回字符串。

例子:

#include <string.h>
#include <stdio.h>
#include <ctime>

int main( int argc, char** argv)
{
struct tm ts;

if( argc > 1 )
{
memset( &ts, '\0', sizeof( ts ) );

const char* cp = strptime( argv[1], "%d.%m.%Y", &ts );

if( cp != NULL )
{
char buf[16];
strftime( buf, sizeof( buf ), "%d.%m.%Y", &ts );
printf( "%s\n", buf );
}
}

return 0;
}

关于c++ - 如何在 C++ 中将日期读入结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19712849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com