我在 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
函数来设置列宽。还可以使用 left
或 right
来设置对齐方式。
不要对列使用制表符,因为制表符解释不一致(例如,某些制表符的范围为 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/