c ++如何将输出与for循环对齐
c++ how to align output with for loop
我正在处理一个学校项目,当我 运行 程序时,它需要提供有组织的输出。我试图将它与右侧对齐,但它显然无法正常工作可见。我怎样才能达到预期的输出?
代码:
for (int i = 0; i < 5; i++) {
std::cout << i + 1 << "." << "\t" << std::setw(20) << std::right << "White Knight" << std::setw(30);
if (i < 3) {
std::cout << "W:" << 3 << " ";
std::cout << "G:" << 4 << " ";
std::cout << "B:" << 5 << " ";
std::cout << "R:" << 6 << " ";
std::cout << "L:" << 7 << " ";
std::cout << "CMC:" << 8 << std::endl;
}
else {
std::cout << "No Cost(Gives 1 G Mana)" << std::endl;
}
printf("\t");
std::cout << std::setw(30) << "HP: " << 10 << " Attack Power:" << 30 << " Ability: " << "First Strike";
}
预期输出:
Card Mana Cost Card Info
1. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP:10 Attack Power:20 Ability:First Strike
2. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP:10 Attack Power:20 Ability:First Strike
3. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP:10 Attack Power:20 Ability:First Strike
4. White Knight No Cost(Gives 1 G Mana) HP:10 Attack Power:20 Ability:First Strike
5. White Knight No Cost(Gives 1 G Mana) HP:10 Attack Power:20 Ability:First Strike
我得到了什么:
1. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8
HP: 10 Attack Power:30 Ability: First Strike2. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8
HP: 10 Attack Power:30 Ability: First Strike3. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8
HP: 10 Attack Power:30 Ability: First Strike4. White Knight No Cost(Gives 1 G Mana)
HP: 10 Attack Power:30 Ability: First Strike5. White Knight No Cost(Gives 1 G Mana)
HP: 10 Attack Power:30 Ability: First Strike
检查一下并将其与您的代码进行比较。我刚刚添加和删除了几个 endl
,在 else
块中添加了一个 setw(36)
并重新修改了一些 space 序列
for (int i = 0; i < 5; i++) {
std::cout << i + 1 << "." << "\t" << std::setw(15) << std::right << "White Knight" << std::setw(15);
if (i < 3) {
std::cout << "W:" << 3 << " ";
std::cout << "G:" << 4 << " ";
std::cout << "B:" << 5 << " ";
std::cout << "R:" << 6 << " ";
std::cout << "L:" << 7 << " ";
std::cout << "CMC:" << 8;
}
else {
std::cout << setw(36) << "No Cost(Gives 1 G Mana)";
}
printf("\t");
std::cout << std::setw(10) << "HP: " << 10 << " Attack Power:" << 30 << " Ability: " << "First Strike" << endl;
}
输出
1. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP: 10 Attack Power:30 Ability: First Strike
2. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP: 10 Attack Power:30 Ability: First Strike
3. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP: 10 Attack Power:30 Ability: First Strike
4. White Knight No Cost(Gives 1 G Mana) HP: 10 Attack Power:30 Ability: First Strike
5. White Knight No Cost(Gives 1 G Mana) HP: 10 Attack Power:30 Ability: First Strike
我正在处理一个学校项目,当我 运行 程序时,它需要提供有组织的输出。我试图将它与右侧对齐,但它显然无法正常工作可见。我怎样才能达到预期的输出?
代码:
for (int i = 0; i < 5; i++) {
std::cout << i + 1 << "." << "\t" << std::setw(20) << std::right << "White Knight" << std::setw(30);
if (i < 3) {
std::cout << "W:" << 3 << " ";
std::cout << "G:" << 4 << " ";
std::cout << "B:" << 5 << " ";
std::cout << "R:" << 6 << " ";
std::cout << "L:" << 7 << " ";
std::cout << "CMC:" << 8 << std::endl;
}
else {
std::cout << "No Cost(Gives 1 G Mana)" << std::endl;
}
printf("\t");
std::cout << std::setw(30) << "HP: " << 10 << " Attack Power:" << 30 << " Ability: " << "First Strike";
}
预期输出:
Card Mana Cost Card Info
1. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP:10 Attack Power:20 Ability:First Strike
2. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP:10 Attack Power:20 Ability:First Strike
3. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP:10 Attack Power:20 Ability:First Strike
4. White Knight No Cost(Gives 1 G Mana) HP:10 Attack Power:20 Ability:First Strike
5. White Knight No Cost(Gives 1 G Mana) HP:10 Attack Power:20 Ability:First Strike
我得到了什么:
1. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8
HP: 10 Attack Power:30 Ability: First Strike2. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8
HP: 10 Attack Power:30 Ability: First Strike3. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8
HP: 10 Attack Power:30 Ability: First Strike4. White Knight No Cost(Gives 1 G Mana)
HP: 10 Attack Power:30 Ability: First Strike5. White Knight No Cost(Gives 1 G Mana)
HP: 10 Attack Power:30 Ability: First Strike
检查一下并将其与您的代码进行比较。我刚刚添加和删除了几个 endl
,在 else
块中添加了一个 setw(36)
并重新修改了一些 space 序列
for (int i = 0; i < 5; i++) {
std::cout << i + 1 << "." << "\t" << std::setw(15) << std::right << "White Knight" << std::setw(15);
if (i < 3) {
std::cout << "W:" << 3 << " ";
std::cout << "G:" << 4 << " ";
std::cout << "B:" << 5 << " ";
std::cout << "R:" << 6 << " ";
std::cout << "L:" << 7 << " ";
std::cout << "CMC:" << 8;
}
else {
std::cout << setw(36) << "No Cost(Gives 1 G Mana)";
}
printf("\t");
std::cout << std::setw(10) << "HP: " << 10 << " Attack Power:" << 30 << " Ability: " << "First Strike" << endl;
}
输出
1. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP: 10 Attack Power:30 Ability: First Strike
2. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP: 10 Attack Power:30 Ability: First Strike
3. White Knight W:3 G:4 B:5 R:6 L:7 CMC:8 HP: 10 Attack Power:30 Ability: First Strike
4. White Knight No Cost(Gives 1 G Mana) HP: 10 Attack Power:30 Ability: First Strike
5. White Knight No Cost(Gives 1 G Mana) HP: 10 Attack Power:30 Ability: First Strike