Vänsterställd fältbredd

Högerställd text vid fältbredd kan ses som en fördel när man ska visa siffror i en tabellliknande layout, men för textsträngar är vänsterställd att föredra. Eftersom fältbredd automatiskt ger högerställd text så måste vi ange att texten ska vara vänsterställd. det kan man göra med följande sats:

cout.setf(ios_base::left, ios_base::adjustfield); 

Har du ett äldre utvecklingsverktyg kanske den inte accepterar ios_base och du skriver då i stället:
cout.setf(ios::left, ios::adjustfield);

När man ändrar till vänsterställd text behöver du enbart ange det en gång, d.v.s. denna inställning gäller för alla skärmutmatningar i programmet om inte annat anges.

Nedan ser du ett exempel på fältbredd med vänsterställd text.


Exempel - fältbredd med vänsterställd text

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
cout.setf(ios_base::left, ios_base::adjustfield);
cout<<endl; cout<<"-----------------------"<<endl;
cout<<setw(10)<<"F\x99RNAMN"<<"| "<<setw(10)<<"EFTERNAMN"<<endl;
cout<<"-----------------------"<<endl;
cout<<setw(10)<<"Josefin"<<"| "<<setw(10)<<"Karlsson"<<endl;
cout<<setw(10)<<"Robin"<<"| "<<setw(10)<<"Ekholm"<<endl<<endl;
return 0;
}

Ovanstående kod får vid programkörning följande resultat.

Som framgår av bilden ovan så hamnar det lodräta avskiljande strecket på samma position i varje rad samt att efternamnen börjar i samma position. Om inte fältbredd och vänsterställd text används skulle detta ha varit mycket besvärligare att åstadkomma om namnens längd är okänd (t.ex. härrör från användarens inmatningar. Nedan ser du en bild där fälten har synliggjorts så de lättare kan se hur textformatering är uppbyggd.