打印系统时间后防止结束

c0d*_*3rz 2 c++ systemtime

我有一个简单的问题,如果我想在与系统时间输出相同的行上打印一个值,这可能吗?

char *date;
time_t timer;
timer=time(NULL);
date = asctime(localtime(&timer));
//printf("Current Date: %s", date);


  std::cout << date << ", " << randomNumber  << std::endl;

  if (file.is_open())
  {
    file << date;
    file << ", ";
    file << randomNumber;
    file << "\n";
  }
Run Code Online (Sandbox Code Playgroud)

我希望会发生的是我会将其作为输出:

Wed Jan 16 16:18:56 2013, randomNumber
Run Code Online (Sandbox Code Playgroud)

但我最终得到的文件是:

Wed Jan 16 16:18:56 2013
, randomNumber
Run Code Online (Sandbox Code Playgroud)

另外,我刚做了一个简单的std :: cout,我注意到了同样的结果.似乎系统在输出结束处强制终止线,无论如何,我可以压制这个吗?

Jes*_*mos 8

你可以用'\ 0'替换日期字符串中的'\n'字符(如果null终止它应该在strlen(date) - 1),它应该在同一行上打印.

date[strlen(date) - 1] = '\0';
Run Code Online (Sandbox Code Playgroud)

编辑:正如Joachim指出的那样strlen返回长度而没有NULL终止符而不是原始分配长度所以它应该是-1而不是-2.