我希望将程序输出的数据保存到文本文件中。以下是我的当前工作示例,其中还包括日期/时间信息(我在运行Windows系统):
#include <iostream>
#include <fstream>
#include <time.h>
using namespace std;
int main()
{
char dateStr [9];
char timeStr [9];
_strdate(dateStr);
_strtime(timeStr);
ofstream output("info.txt", ios::out);
output << "Start time part 1 " << "\t" << timeStr << " on " << dateStr << "\n";
output << "Start time part 1000000 " << "\t" << timeStr << " on " << dateStr << "\n";
output.close();
return 0;
}
然而对于我作为用户来说,“info.txt”的输出不是很可读,因为时间和日期戳没有对齐。以下是输出结果:
Start time part 1 15:55:43 on 10/23/12
Start time part 1000000 15:55:43 on 10/23/12
我的问题是,有没有一种方法来对齐后面的部分?
std::setw
仅适用于下一个插入,但std::left
永久修改流。如果它是全局流,比如std::cout
,一个行为良好的方法应该保存/恢复output.flags()
,以便您的特定格式设置偏好不会在程序的其他地方导致奇怪的结果。 - jwm