Хотя не совсем ясно, как вы намереваетесь заполнить столбцы Monday - Friday
, причем ваши столбцы "Categories"
являются первыми, вы можете использовать std::setw()
, чтобы убедиться, что столбец заполнен правильно.Глядя на столбец "Categories"
, содержащий не более 10 символов, с двумя пробелами (по одному на каждой стороне) и 2- |(по одному на каждой стороне) у вас есть общая ширина для 14-символьных символов.
Поскольку categories
равно std::string
, после ввода данных от пользователя вы найдете количество символов, введенных с помощью categories.size()
.Таким образом, чтобы прочитать категорию от пользователя, выведите категорию (после "| "
), а затем вычислите количество символов, необходимое для заполнения оставшейся части поля (сохраняя место для последнего '|'
), которое вы можете использовать:
std::setw(14-categories.size()-1)
Соберите ваш пример, чтобы заполнить первый столбец Categories
пользовательским вводом, который вы можете сделать:
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
int main (void) {
std::ofstream outputFile;
// double monday, tuesday, wednesday, thursday, friday;
int columns = 0;
std::string categories;
outputFile.open("organize.txt");
std::cout << "How many columns do you need in your table? ";
if (!(std::cin >> columns)) {
std::cerr << "stream error on input.\n";
return 1;
}
outputFile << "| Categories | Monday | Tuesday | Wednesday "
"| Thursday | Friday |\n";
outputFile << "|------------|------------|-----------|-------------"
"|------------|------------|\n";
for (int count = 0; count < columns; count++)
{
std::cout << "Enter category (" << count+1 << "/" << columns << "): ";
std::cin >> categories;
outputFile << "| " << categories << std::setw(14-categories.size()-1)
<< "|\n";
}
outputFile.close();
return 0;
}
Пример использования / Вывод
$ ./bin/cout_columns
How many columns do you need in your table? 7
Enter category (1/7): nuts
Enter category (2/7): bolts
Enter category (3/7): screws
Enter category (4/7): nails
Enter category (5/7): staples
Enter category (6/7): pliars
Enter category (7/7): hammer
Выходной файл
$ cat organize.txt
| Categories | Monday | Tuesday | Wednesday | Thursday | Friday |
|------------|------------|-----------|-------------|------------|------------|
| nuts |
| bolts |
| screws |
| nails |
| staples |
| pliars |
| hammer |
Эта оболочка в виде гайки - это то, как вы будете обрабатывать оставшиеся столбцы для их размера и заполнения каждого.Сложность в том, что вам придется иметь полные недели данных для каждой из категорий, прежде чем вы начнете записывать в файл, потому что нет способа создать резервную копию и заполнить их позже.
Просмотрите вещии дайте мне знать, если это то, что вы были после или у вас есть какие-либо вопросы.