Я работаю над назначением, где мне нужно разделить программу на модули файлов .cpp и .h, и я получаю странную ошибку. В одном из моих файлов .cpp, у меня есть код'string'/'cin' не был объявлен в этой области
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>
bool getYesNoResponse()
{
string response;
getline (cin, response);
while (response.size() == 0 ||
(response[0] != 'y' && response[0] != 'Y'
&& response[0] != 'n' && response[0] != 'N'))
{
if (response.size() > 0)
cout << "Please respond 'yes' or 'no'. " << flush;
getline (cin, response);
}
return response[0] == 'y' || response[0] == 'Y';
}
Я получаю ошибку error: 'string' was not declared in this scope
. Я не должен редактировать фактический код, данный мне (мы должны только писать входящие и определяющие функции в файлах .h), но я хотел посмотреть, была ли проблема с строкой в одно время, поэтому Я заменил string
на std::string
в строке «string response;
», и проблема прекратилась; кроме того, я получил error: 'cin' was not declared in this scope
со следующей строкой. У меня есть #include
для <string>
, <iostream>
и <fstream>
, поэтому я довольно смущен, почему он не работает. Любые советы о том, как исправить это, не изменяя мой исходный код, будут оценены!
может у попробовать 'с помощью пространства имен std' только после того, включает –
@SakthiKumar «без изменения моего исходного кода» – hvd
Вы уже нашли правильный способ решения проблемы, но отвергаете это решение. Фактически, вы отклоняете * любое * решение в своем вопросе. Что вы тогда просите? – hvd