Сохранять в переменной имя и фамилию, которую вводил в компьютер бы пользователь

Я нуждаюсь в том, чтобы сделать программу, в которую пользователь вводил бы Ваше полное имя, Ваш возраст, и которую печатал бы на экране:

"Сеньор" назвал "Ваш возраст -" возраст

Я изучаю цепь символов, но не знаю очень хорошо, как использовать их.

Код C ++:

#include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;

main() 
{
    int edad;
    char nombre[50];

    cout<<"ingrese nombre \n";
    cin>>nombre;

    gets(nombre);
    cout<<"ingrese edad \n";
    cin>>edad;

    if (edad>=0&&edad<=9){ cout<<nombre<<" su piso es 0 \n"; }
    if (edad>9&&edad<=19){ cout<<nombre<<" su piso es 1 \n"; }
    if (edad>19&&edad<=29){ cout<<nombre<<" su piso es 2 \n"; }
    if (edad>29&&edad<=39){ cout<<nombre<<" su piso es 3 \n"; }
    if (edad>39&&edad<=49){ cout<<nombre<<" su piso es 4 \n"; }
    if (edad>49&&edad<=59){ cout<<nombre<<" su piso es 5 \n"; }
    if (edad>59&&edad<=69){ cout<<nombre<<" su piso es 6 \n"; }
    if (edad>69&&edad<=79){ cout<<nombre<<" su piso es 7 \n"; }     
    getch();
}
1
задан 24.04.2019, 15:49
1 ответ

Спасибо за решение моей проблемы, хотя только acomodГ© порядок cГіdigo, так как Г©sta soluciГіn он работал, но не я incluГ - на одинокое имя я imprimГ - в на экране возраст, asГ - как deberГ, - чтобы оставаться cГіdigo.

#include <iostream>
#include <conio.h>

int edad;
char nombre[50];

using namespace std;


int main()

{
cout<<"ingrese nombre \n";
cin>>nombre;

cout<<"ingrese edad \n";
cin>>edad;

if (edad>=0&&edad<=9){ cout<<nombre<<" su piso es 0 \n"; }
else if (edad>9&&edad<=19){ cout<<nombre<<" su piso es 1 \n"; }
else if (edad>19&&edad<=29){ cout<<nombre<<" su piso es 2 \n"; }
else if (edad>29&&edad<=39){ cout<<nombre<<" su piso es 3 \n"; }
else if (edad>39&&edad<=49){ cout<<nombre<<" su piso es 4 \n"; }
else if (edad>49&&edad<=59){ cout<<nombre<<" su piso es 5 \n"; }
else if (edad>59&&edad<=69){ cout<<nombre<<" su piso es 6 \n"; }
else if (edad>69&&edad<=79){ cout<<nombre<<" su piso es 7 \n"; }
else if (edad<0){cout<<nombre<<" esta edad no existe \n";}
getch();
return 0;
}
0
ответ дан 03.12.2019, 18:58

Сначала весь fución main() в c ++ он должен возвращать всегда целое число, если мы хотим продолжить стандарты языка. Ты можешь смотреть на себя то, что говорит документацию по этому здесь.

С другой стороны ты не должен импортировать библиотеки, которые ты не использовал бы а следовательно мы удаляем string.h.

Относительно проблемы, если, я предполагаю, что твоя головная боль приходит, потому что ты хочешь захватить один string с местом, например Pepito Pérez García. Задержание с cin ему нужно проблему, которая, найти место, задерживается а следовательно только тебя захватят имя но не фамилии.

Существуют функции, чтобы это делать, gets() если я не ошибаюсь, будь помечена как deprecated в c++ и удаленная c в стандарте 2011. Мы можем использовать в Вашем месте cin.getline().

С другой стороны, я рекомендую тебе меняться твой if из-за else if. Различие - что, если все if он оценивает все их всегда, если ты используешь структуру if, else if, else когда condicón будет оценен, как верная остальные игнорируются, будучи работоспособнее.

Код остался бы нечто похожее:

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int edad;
    char nombre[50];

    cout<<"ingrese nombre \n";
    cin.getline(nombre,sizeof(nombre));

    cout<<"ingrese edad \n";
    cin>>edad;

    if (edad>=0&&edad<=9){ cout<<nombre<<" su piso es 0 \n"; }
    else if (edad>9&&edad<=19){ cout<<nombre<<" su piso es 1 \n"; }
    else if (edad>19&&edad<=29){ cout<<nombre<<" su piso es 2 \n"; }
    else if (edad>29&&edad<=39){ cout<<nombre<<" su piso es 3 \n"; }
    else if (edad>39&&edad<=49){ cout<<nombre<<" su piso es 4 \n"; }
    else if (edad>49&&edad<=59){ cout<<nombre<<" su piso es 5 \n"; }
    else if (edad>59&&edad<=69){ cout<<nombre<<" su piso es 6 \n"; }
    else if (edad>69&&edad<=79){ cout<<nombre<<" su piso es 7 \n"; }

   getch();
   return 0;
}

Если у тебя есть свобода, лучше, чтобы вместо array символов ты использовал библиотеку std::string что облегчает и делает более безопасной работу с цепями в c++. Для этого ты можешь использоватьstd::getline()чтобы захватывать цепь:

#include <iostream>
#include <string>
#include <conio.h>


using namespace std;

int main()
{
    int edad;
    string nombre;

    cout<<"ingrese nombre \n";
    getline(cin,nombre);

    cout<<"ingrese edad \n";
    cin>>edad;

    if (edad>=0&&edad<=9){ cout<<nombre<<" su piso es 0 \n"; }
    else if (edad>9&&edad<=19){ cout<<nombre<<" su piso es 1 \n"; }
    else if (edad>19&&edad<=29){ cout<<nombre<<" su piso es 2 \n"; }
    else if (edad>29&&edad<=39){ cout<<nombre<<" su piso es 3 \n"; }
    else if (edad>39&&edad<=49){ cout<<nombre<<" su piso es 4 \n"; }
    else if (edad>49&&edad<=59){ cout<<nombre<<" su piso es 5 \n"; }
    else if (edad>59&&edad<=69){ cout<<nombre<<" su piso es 6 \n"; }
    else if (edad>69&&edad<=79){ cout<<nombre<<" su piso es 7 \n"; }

    getch();
    return 0;

}

Я удалил бы использование conio.h после того, как не были стандартной библиотекой и будучи функции, которые делают то же самое что getch(); в ней, но это не неправильный, единственный звук предпочтения.

5
ответ дан 03.12.2019, 18:58
  • 1
    50 байт char отдельные помещения ни для чего? что происходит, если мне случается помещать немного demá s, я harí во что-то как: char* buffs = new char[sizeof(buffs)]; cin.getline(buffs, strlen(buffs)); –  23.11.2016, 23:12
  • 2
    @nikomaster ты имеешь razó n, но мой пример - для Вашего có я говорю и declara array está костариканский, конечно же использовать память diná слюда может быть лучше, но видя Ваш có я говорю возможно esté изучая и мне не кажется соответствующим проникать в резерв и liberació n памяти и demá s, когда не является этой Ваша проблема и и даже он не использует указатели в Вашем có я говорю. И уже помещенные, мы используем string, что для немного está в c ++, и которого, если я даю ему пример этого. –  23.11.2016, 23:27