将时间存储在字符串C ++中

时间:2014-03-13 20:21:12

标签: c++ string

我使用以下代码存储时间,但我想知道是否可以将此内容存储在字符串而不是char中。或者可能有一种方法可以将时间存储在字符串中。

    ofstream read_file;
    read_file.open("time.txt");// file name
    time_t rawtime;
    struct tm * timeinfo;
    char currenttime [80];

    time (&rawtime);
    timeinfo = localtime (&rawtime);
    strftime (currenttime,80," %T",timeinfo);
    cout << " \n\n\n\n";
    cout << currenttime;    // time store section
   read_file << currenttime;
   read_file.close();

2 个答案:

答案 0 :(得分:0)

你做得对,而且,基本上,你想做的事情,就像我所理解的那样,是把时间留在std::string而不是char currenttime [80]。我会建议以下事项:

  1. 创建一个接收time_t作为参数的函数,并返回std::string
  2. 将您的代码从struct tm* timeinfo复制到strftime,并添加return currenttime ;
  3. 使用您的功能。示例:const std::string filetime = time2string( rawtime );
  4. 请注意,当您致电char[]

    时,会自动从std::string转换为return currenttime ;

    请注意,下面的建议是使代码更好,可重用。您始终可以在strftime之后添加一行:const std::string ftime( currenttime ) ;,然后开始使用ftime代替currenttime。那也行。

答案 1 :(得分:0)

这对我有用:

string timeToString()
{
    time_t rawtime;
    struct tm * timeinfo;
    char currenttime [80];

    time (&rawtime);
    timeinfo = localtime (&rawtime);
    strftime (currenttime,80," %T",timeinfo);
    return currenttime;
}