c++ - 如何使用用户给定的值创建一个表(使用 scanf)?

标签 c++

我在 C 中有一个我需要做的硬件,我被要求复制一个表,该表将使用用户给定的值创建:

它应该是这样的:

-----------------------------------------------------
Name             Prenume      Grupe    Data nasterii
-----------------------------------------------------
Marinescu        Alexandru     1234       10.10.2000
Georgescu        Eduard        4321       11.11.1990
Constantinescu   Ion-Catalin   4424        5.11.1995

我是从这个开始的,但是由于我们的教授并没有真正指导我们找到创建表格的方法,所以我真的不知道如何继续。如果您能提供帮助,我将不胜感激,因为我也会启发我的一些同学。 (另外,在网上搜索解决方案被证明是无用的)

我从这个开始:

#include <stdio.h>

using namespace std;

int main()    
{
    char nume[20], prenume[20], data[20];
    int grupa;

    printf("Introdu datele studentului nr 1:");

    printf("\nNume:");
    scanf("%s", &nume);

    printf("\nPrenume:");
    scanf("%s", &prenume);

    printf("\nGrupa:");
    scanf("%d", &grupa);

    printf("\nData nasterii:");
    scanf("%s", &data);

    printf("\nIntrodu datele studentului nr 2:");

    printf("\nNume:");
    scanf("%s", &nume);

    printf("\nPrenume:");
    scanf("%s", &prenume);

    printf("\nGrupa:");
    scanf("%d", &grupa);

    printf("\nData nasterii:");
    scanf("%s", &data);

    printf("\nIntrodu datele studentului nr 3:");

    printf("\nNume:");
    scanf("%s", &nume);

    printf("\nPrenume:");
    scanf("%s", &prenume);

    printf("\nGrupa:");
    scanf("%d", &grupa);

    printf("\nData nasterii:");
    scanf("%s", &data);

}

最佳答案

对于打印表格,我建议使用 cout.width 函数来设置列宽。还可以使用 leftright 来设置对齐方式。

不要对列使用制表符,因为制表符解释不一致(例如,某些制表符的范围为 2 到 8 个空格;或者可能会移动到设置的下一个制表位)。

示例:

#include <iostream>
#include <cstdlib>
#include <iomanip>

int main()
{
  std::cout.width(16);
  std::cout << "Hello"
            << "There"
            << "It's"
            << "Raining\n";
  return EXIT_SUCCESS;
}

如果必须使用 C-Style I/O,可以使用格式说明符来布局文本:

printf("%20s  %16s  %-20s %-32s\n",
       "Hello", "There", "It's", "Raining");

至于打印“条形图”,有很多方法可以做到这一点,我将其留作 OP 的练习。

关于c++ - 如何使用用户给定的值创建一个表(使用 scanf)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41620820/

相关文章:

c++ - 在启动特定子进程后挂起进程

C++ 文件 I/O 仅在 IDE 中运行时有效(Visual C++ Express 2010)

c++ - 如何在 C++ 中处理 DWG 文件

c++ - 为什么 std::string 和 std::vector 没有像我期望的那样传递给我的构造函数?

c++ - 在 C++ 中修复观察者设计模式

c++ - 一个类的 VTT 是什么?

c++ - QTableView 不显示

java - 在 c++ 中使用 double 存储值时值发生变化,但在 java 中保持不变

c++ - 移动链表中的第一项以结束 C++

c++ - Lambda 变量捕获