Rechts uitvullende uitvoerstroom in C++

Ik werk in C++. Ik krijg een reeks van 10 cijfers (char array) die al dan niet 3 streepjes bevat (waardoor het maximaal 13 tekens bevat). Is er een ingebouwde manier met de stream om het goed te rechtvaardigen?

Hoe zou ik te werk gaan om naar de juiste stroom te printen? Is er een ingebouwde functie/manier om dit te doen, of moet ik 3 spaties invullen in het begin van de tekenreeks?

Ik heb te maken met ostream om precies te zijn, ik weet niet zeker of dat ertoe doet.


Antwoord 1, autoriteit 100%

Je moet std::setwin combinatie met std::right.

#include <iostream>
#include <iomanip>
int main(void)
{
   std::cout << std::right << std::setw(13) << "foobar" << std::endl;
   return 0;
}

Antwoord 2, autoriteit 23%

Ja. U kunt setw()gebruiken om de breedte in te stellen. De standaard uitvulling is rechts uitgelijnd en de standaard opvulling is spatie, dus hierdoor worden links spaties toegevoegd.

stream << setw(13) << yourString

Zie: setw(). U moet <iomanip>opnemen.


Antwoord 3, autoriteit 17%

Zie “setw” en “right” in uw favoriete C++ (iostream) referentie voor meer details:

cout << setw(13) << right << your_string;

Other episodes