Напишите имя в виде диагональной линии

0

Я пытаюсь написать программу, которая будет показывать имя в диагональной строке. Я знаю, что я должен добавить переменную с пробелом, например \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 a long shot. 

    return 0;
}

output:
Enter your first name:Alexander
A
l
e
x
a
n
d
e
r
  • 0
    Ну что случилось?
  • 0
    Следите за своими брекетами ...
Показать ещё 2 комментария
Теги:

3 ответа

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;
}

Вы можете отправить часть своего кода (не обязательно этого) для проверки кода. У вас есть некоторые плохие практики, когда дело доходит до форматирования и (отсутствия) отступов.

0

Нужно {} в вашем цикле for. Без этого вы не добавляете вкладку для каждого символа, а добавляете ее, когда цикл завершен.

Если вы выполняете цикл for без блока, выполняется только команда, следующая за циклом.

0

Вы забыли открывающие и закрывающие скобки для кодового блока? Цикл, который вы написали,

cout << space << firstName.at(posChar) << endl;

и после того, как он закончил, он делает один раз

space=space + "\t"; // this is what I've tried, it 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 a long shot.
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню