我正在尝试编写一个在对角线上显示名称的程序。 我知道我应该添加一个带空格的变量,比如\ t,并在每个循环中递增它。 我试图这样做没有成功。有什么建议吗?
int main()
{
string space = "\t";
string firstName;
cout << "Enter your first name:";
cin >> firstName;
for (int posChar = 0;
posChar < firstName.length( );
posChar++)
cout << space << firstName.at(posChar) << endl;
space=space + "\t"; // this is what I've tried, it's a long shot.
return 0;
}
output:
Enter your first name:Alexander
A
l
e
x
a
n
d
e
r
答案 0 :(得分:3)
如果您要正确缩进代码,您会发现space=space + "\t";
不属于for
。
此外,您应该使用空格而不是标签。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string space;
string firstName;
cout << "Enter your first name:";
cin >> firstName;
for (int posChar = 0; posChar < firstName.length( ); posChar++)
{
cout << space << firstName.at(posChar) << endl;
space = space + " ";
}
return 0;
}
您可以将一些代码(不一定是此代码)提交给code review。在格式化和(缺少)缩进方面,你有一些不好的做法。
答案 1 :(得分:0)
for for循环需要{}。如果没有它,您不会为每个字符添加选项卡,而是在循环完成时添加它。
如果你做一个没有块的for循环,那么只执行循环后面的命令。
答案 2 :(得分:0)
您是否忘记了代码块的开始和结束括号? 你写的循环只做
cout << space << firstName.at(posChar) << endl;
并且在完成之后它会执行一次
space=space + "\t"; // this is what I've tried, it's a long shot.
它应该是这样的:
for (int posChar = 0;
posChar < firstName.length( );
posChar++)
{
cout << space << firstName.at(posChar) << endl;
space=space + "\t"; // this is what I've tried, it's a long shot.
}