вывод c ++ ostream с помощью setw - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть имя выходного файла

, используя приведенный ниже код для добавления строки в текстовый файл:

string foo = "Hello, foo";
out << foo;

Как настроить строку для ввода в выходной файл

добавление строки и чисел с определенной шириной с помощью setw (7)

Your name is:AName  you are 18  
Your name is:foo    you are 30    

с переменной name, содержащей имя, и переменной age, содержащей возраст

какможно заставить этот код работать

  out<<  ("Your name is :"+ setw(7)+  name +" you are "  + age);

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Вы можете попробовать что-то вроде этого:

std::string name = "AName";
unsigned int age = 18;
out << "Your name is:" << setw(7) << name << "you are " << age << "\n";

Если у вас есть struct и база данных, это может быть:

struct Name_Age
{
    std::string name;
    unsigned int age;
};

int main()
{
    std::vector<Name_Age> database;
    Name_Age record;
    record.name = "AName"; record.age = 18;
    database.push_back(record);
    record.name = "foo"; record.age = 30;
    database.push_back(record);

    for (size_t index = 0; index < database.size(); ++index)
    {
        cout << "Your name is:" << setw(7) << database[index].name
             << "you are " << database[index].age << "\n";
    }
    return 0;
}
0 голосов
/ 17 ноября 2018

Это так же просто, как

std::out << "Your name is :" << std::setw(7) << std::left << name << " you are " << age;

setw не возвращает строку, которую вы можете объединить. Он возвращает неопределенный тип, который может быть передан в operator << выходного потока.

...