С++ версия вашей программы:
#include <iostream>
using namespace std;
int main()
{
string first, last;
cerr << "Please type in your First Name: ";
if (! (cin >> firs))
return -1;
cerr << "Please type in your Last Name: ";
if (! (cin >> last))
return -1;
cout << last << ' ' << first << endl;
return 0;
}
Компиляция и исполнение:
pi@raspberrypi:/tmp $ g++ -pedantic -Wextra i.cc
pi@raspberrypi:/tmp $ ./a.out
Please type in your First Name: aze
Please type in your Last Name: qsd
qsd aze
pi@raspberrypi:/tmp $
Я проверяю, что имена были введены (без EOF), я использую cerr, чтобы убедиться, что сообщения сброшены без записи endl
И версия C:
#include <stdio.h>
int main()
{
char first[30], last[30];
fprintf(stderr, "Please type in your First Name: ");
if (scanf("%29s", first) != 1)
return -1;
fprintf(stderr, "Please type in your Last Name: ");
if (scanf("%29s", last) != 1)
return -1;
printf("%s %s\n", last, first);
return 0;
}
Компиляция и исполнение:
pi@raspberrypi:/tmp $ gcc -pedantic -Wextra i.c
pi@raspberrypi:/tmp $ ./a.out
Please type in your First Name: aze
Please type in your Last Name: qsd
qsd aze
Я ограничиваю размер в scanf, чтобы не записывать из массивов, я проверяю, что scanf смог прочитать имена, я также использую stderr чтобы обязательно сбросить сообщение, не написав '\n'
first и last являются массивами, бесполезно использовать '&' в scanf для указания их адреса
Обратите внимание, что эти версии не позволяют вводить составные имена с использованием пробелов, чтобы можно было прочитать всю строку.
person
bruno
schedule
16.02.2019
iostream
или пространств имен. - person n. 1.8e9-where's-my-share m.   schedule 16.02.2019