C/C++에 문제가 있습니다. 아래 코드는 실제로 내 코드입니다. 메뉴가 Option 1에 의해 히트되면정상적으로 실행되어 결과를 표시하고 메뉴를 다시 표시합니다. 그러나 이후에는 아무 것도 입력 할 수 없습니다. 그 이유는 무엇입니까? 도와 주시는 분께 미리 감사드립니다. C++ C 루프 문제
freopen("file.txt","r",stdin);
그래서 당신은 아무것도 입력 할 수 없습니다
:편집 해,이 내 모든 첫째 후
int main()
{
int Option;
Menu m;
do
{
m.showMenu();
cout<<"Please enter your choice:";
cin>>Option;
if (Option == 1)
{
int scenario = 0;
string Lines;
Mobile mobileObj;
freopen("file.txt","r",stdin);
while(true)
{
getline(cin,Lines);
while(Lines.length() > 1 && Lines[0] == ' ') Lines = Lines.substr(1);
if(Lines.length() == 1 && Lines[0] == ' ') continue;
if(scenario == 0)
{
if(Lines == "Mobile Phones & Accessories Classifieds")
{
scenario = 1;
getline(cin,Lines);
continue;
}
}
else if(scenario == 1)
{
if(Lines[0] == '*') continue;
else scenario = 2;
}
else if(scenario == 2)
{
if(Lines[0] == '[')
{
for(unsigned int i=0;i<Lines.length();++i)
{
if(Lines[i] == ']')
{
mobileObj.mobDevName = Lines.substr(i+1);
break;
}
}
}
else if(Lines.length() > 11 && is_number(Lines[0]) && is_number(Lines[1]) && is_number(Lines[10]))
{
mobileObj.dateOfPub = Lines.substr(0,11);
}
else if(Lines.length() >= 5 && Lines[0] == 'S' && Lines[1] == '$')
{
mobileObj.price = Lines;
v_Mob.push_back(mobileObj);
}
else if(Lines == "Browse Marketplace Listings") break;
}
}
cout<<("[Mobile device Name] – [Date of publish] – [Mobile phones’ pricings]\n");
for(unsigned int i=0;i<v_Mob.size();++i)
{
cout << i+1 << ") ";
v_Mob[i].print();
}
cout<<"\n";
cout<<"Going back to main menu ...\n";
cout<<"\n";
}
else if (Option == 2)
{
cout<<"hi\n";
}
}while(Option != 0);
return 0;
}
? 예를 들어'do' 루프를 끝내기위한 조건이 무엇인지 알고 싶습니다. –