首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整ofstream的输出

调整ofstream的输出
EN

Stack Overflow用户
提问于 2012-10-23 22:01:19
回答 2查看 11.9K关注 0票数 7

我希望将程序中的数据输出到文本文件中。下面是一个工作示例,展示了我当前是如何做的,其中还包括日期/时间(我运行的是Windows):

代码语言:javascript
复制
#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“的输出对我来说并不是很容易读懂,因为末尾的时间和日期戳并不对齐。下面是输出:

代码语言:javascript
复制
Start time part 1   15:55:43 on 10/23/12
Start time part 1000000     15:55:43 on 10/23/12

我的问题是,有没有办法对齐后半部分?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-23 22:04:56

是的, header提供了setw操纵器,允许您设置输出到ostream的每个字段的宽度。对每行使用setw操纵器,而不是制表符,可以更严格地控制输出:

代码语言:javascript
复制
output << setw(25) << "Start time part 1 " << timeStr << " on " << dateStr << endl;
output << setw(25) << "Start time part 1000000 " << timeStr << " on " << dateStr << endl;

若要在左侧对齐字符串,请添加left操纵器:

代码语言:javascript
复制
output << left << setw(25) << "Start time part 1 " << timeStr << " on " << dateStr << endl;
output << left << setw(25) << "Start time part 1000000 " << timeStr << " on " << dateStr << endl;
票数 8
EN

Stack Overflow用户

发布于 2012-10-23 22:05:21

代码语言:javascript
复制
int max_align = 10;
output << "Start time part 1 " << "\t" << timeStr 
<< std::string(max_align-timeStr.size(), " ") << " on " << dateStr << "\n";
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13032214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档