2012-10-23 31 views
6

Tôi muốn xuất dữ liệu từ chương trình của mình sang tệp văn bản. Dưới đây là một ví dụ làm việc cho thấy làm thế nào tôi làm điều đó hiện nay, nơi tôi cũng bao gồm ngày/lần (Tôi đang chạy Windows):sắp xếp đầu ra của dòng

#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; 
} 

Tuy nhiên đầu ra của "info.txt" không phải là rất có thể đọc được với tôi như một người dùng, vì dấu thời gian và ngày ở cuối không được căn chỉnh. Đây là đầu ra:

Start time part 1 15:55:43 on 10/23/12 
Start time part 1000000  15:55:43 on 10/23/12 

Câu hỏi của tôi là, có cách nào để căn chỉnh phần sau không?

Trả lời

7

Có, tiêu đề <iomanip> cung cấp trình xử lý setw, cho phép bạn đặt chiều rộng của mỗi trường mà bạn xuất thành ostream. Sử dụng setw thao túng cho mỗi hàng thay vì ký tự tab sẽ cung cấp kiểm soát chặt chẽ hơn so với sản lượng:

output << setw(25) << "Start time part 1 " << timeStr << " on " << dateStr << endl; 
output << setw(25) << "Start time part 1000000 " << timeStr << " on " << dateStr << endl; 

Để sắp xếp chuỗi bên trái, thêm left thao túng:

output << left << setw(25) << "Start time part 1 " << timeStr << " on " << dateStr << endl; 
output << left << setw(25) << "Start time part 1000000 " << timeStr << " on " << dateStr << endl; 
2
int max_align = 10; 
output << "Start time part 1 " << "\t" << timeStr 
<< std::string(max_align-timeStr.size(), " ") << " on " << dateStr << "\n"; 
Các vấn đề liên quan