2009-09-20 60 views
1

我试图格式化我的输出在控制台窗口中的四个单独的字段,均匀间隔。格式化到控制台,C++

out << left << setw(24) << "Name" << "Location" 
<< right << setw(20) << "Acres " << "Rating" << endl; 

out << left << setw(24) << "----" << "--------" 
<< right << setw(20) << "----- " << "------" << endl; 

while (current_node) 
    { 
     out << left << setw(24) << current_node->item.getName() // equivalent tabs dont work? 
      << current_node->item.getLocation() << right << setw(20) 
      << current_node->item.getAcres()   
      << " " << current_node->item.getRating() 
      << endl; 

     current_node = current_node->nextByName; 
    } 

上面的代码中,由于某种原因,没有空间,这一切均匀地当运输及工务局局长(N)是相同的价值观......

+0

out << left << setw(24)<<“Name”<<“Location” << right << setw(20)<<“Acres”<<“Rating”<< endl; \t out << left << setw(24)<<“----”<<“--------” << right << setw(20)<<“---- - “<<”------“<< endl; 而(CURRENT_NODE) \t { \t \t了<<左<<运输及工务局局长(24)<< current_node-> item.getName()//相当于标签不工作? \t \t \t << current_node-> item.getLocation()<<右<<运输及工务局局长(20) \t \t << current_node-> item.getAcres()\t \t \t \t \t << “” << current_node- > item.getRating() \t \t \t << endl; \t \t current_node = current_node-> nextByName; \t} – user40120 2009-09-20 06:30:40

+0

lampshade,阅读此:http://stackoverflow.com/editing-help – avakar 2009-09-20 06:36:22

+2

@avakar我相信多行代码格式在评论中被忽略。 – 2009-09-20 06:46:50

回答

3

setw()操纵仅影响下一个输出领域 - 这是不'粘'。因此,您需要为每个输出字段指定所需的内容,而不是仅更改一次,并期望它对以下每个输出项都起作用。

我想你想要的东西,如:

cout << left << setw(24) << "Name" << setw(24) << "Location" ; 
cout << right << setw(20)<< "Acres" << setw(20) << "Rating" << endl; 

cout << left << setw(24) << "----" << setw(24) << "--------" ; 
cout << right << setw(20) << "-----" << setw(20) << "------" << endl; 

while (current_node) 
    { 
     cout << left << setw(24) << current_node->item.getName() 
        << setw(24) << current_node->item.getLocation() 
      << right 
        << setw(20) << current_node->item.getAcres() 
        << setw(20) << current_node->item.getRating() 
      << endl; 

     current_node = current_node->nextByName; 
    } 

C++ I/O流 - 它的类型安全的,但理智不安全。