Проблема ввода / вывода с простой программой.

У меня домашнее задание, с которым у меня проблемы. У меня вроде нет ошибок, но при запуске программы и вводе текста …. ничего не происходит.

Например, чтобы проверить это, я обычно добавляю «Робертсон, Боб Джон» и нажимаю клавишу ввода. Кто-нибудь может мне с этим помочь?

#include <iostream>
#include <string>

using namespace std;

int main () {

//Title and instructions
cout << "This program will output your name in first-to-last order!" << endl;
cout << "Please type your name in the following manner: last, first middle."; << endl;

//Declare the strings being used
string firstName;
string middleName;
string lastName;

//Put user input into strings, ignore the comma
cin >> lastName >> firstName >> middleName >> endl;
cin.ignore(',');

//Output the name in first-to-last order
cout << "Your name is: " << first <<' '<< middle <<' '<< last << endl;

//Pause before exiting
return 0;

}

0

Решение

Во-первых, у вас есть пара ошибок компиляции; дополнительная точка с запятой на вашем втором coutнеправильные имена переменных, когда вы пытаетесь cout ваш вывод и т. д. Но настоящая проблема заключается в вашем cin.ignore(',');, Кажется, висит по какой-то причине. Я собираюсь угадать, основываясь на документация cin, что он интерпретирует запятую как число и игнорирует столько символов.

Вам нужно будет удалить запятую самостоятельно после cin; Я оставил это как упражнение для вас.

#include <iostream>
#include <string>

using namespace std;

int main () {

//Title and instructions
cout << "This program will output your name in first-to-last order!" << endl;
cout << "Please type your name in the following manner: last, first middle." << endl;

//Declare the strings being used
string firstName;
string middleName;
string lastName;

//Put user input into strings, ignore the comma
cin >> lastName >> firstName >> middleName;

//Output the name in first-to-last order
cout << "Your name is: " << firstName <<' '<< middleName <<' '<< lastName << endl;

//Pause before exiting
return 0;

}
0

Другие решения

Поскольку вы говорите, что он компилируется, вероятно, ваш реальный код не имеет мошенничества ; во-вторых cout линия, не пытается читать в endlи использует правильные имена переменных в финале cout,

Предполагая, что нет никаких других отличий, проблема заключается в следующем:

cin.ignore(',');

Я не уверен, что ты хочешь сделать; но он ждет, пока вы не введете дополнительные 44 символа (интерпретируя ‘,’ как его значение ASCII 44) после имени, прежде чем продолжить.

Если вы хотите игнорировать запятую после фамилии, возможно, проще всего прочитать ее через запятую, а затем удалить ее с помощью lastName.pop_back() (возможно, проверяя, что там действительно запятая).

Кстати, у моего отца нет второго имени, а у моей сестры два. Им не разрешено использовать вашу программу?

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector