2012-10-23 39 views
6

का आउटपुट आउटपुट मैं अपने प्रोग्राम से डेटा को टेक्स्ट फ़ाइल में आउटपुट करना चाहता हूं। यहाँ एक काम कर दिखा कि कैसे मैं यह वर्तमान में करते हैं, उदाहरण है, जहां मैं भी तिथि/समय (मैं 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 

मेरा प्रश्न है, क्या बाद के हिस्से को संरेखित करने का कोई तरीका है?

उत्तर

7

हां, <iomanip> हेडर setw मैनिपुलेटर प्रदान करता है, जिससे आप ostream पर आउटपुट करने वाले प्रत्येक फ़ील्ड की चौड़ाई निर्धारित करते हैं। टैब अक्षरों के स्थान पर प्रत्येक पंक्ति के लिए setw जोड़तोड़ का उपयोग करते हुए उत्पादन से अधिक से अधिक नियंत्रण हासिल प्रदान करेगा:

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

बाईं तरफ के तार संरेखित करने के लिए, left जोड़तोड़ जोड़ें:

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";