我有一项工作要使用我从c ++编写的代码中的输入来编写.txt文件,我想制作一个表,最简单的解决方案是使用ncurses。
有人教我使用fstream,但我不知道如何使用fstream从ncurses获取输出

最佳答案

您不需要ncurses即可创建表。作为提示,请看一下std::setwstd::right iostream操纵器。它们分别定义了字段在打印时应占用的最小空间量以及该空间内的对齐方式。

作为一个简单的示例,让我们打印一个表:

#include <iostream>
#include <iomanip>
#include <string>
#include <vector>

using std::cout;
using std::endl;
using std::right;
using std::setw;
using std::string;
using std::vector;

int main() {
    vector<vector<string>> data = {
        { "Homer", "Simpson", "42" },
        { "Marge", "Simpson", "35" },
        { "Bart", "Simpson", "10" },
        { "Lisa", "Simpson", "9" },
        { "Maggie", "Simpson", "2" },
        { "Ned", "Flanders", "40" },
    };

    for (auto& row : data) {
        cout << setw(10) << row[0] << setw(10) << row[1] << setw(5) << row[2] << endl;
    }
}


输出:

     Homer   Simpson   42
     Marge   Simpson   35
      Bart   Simpson   10
      Lisa   Simpson    9
    Maggie   Simpson    2
       Ned  Flanders   40

10-05 22:27