이 프로그램이 올바르게 작동하는 데 문제가 있습니다. 프로그램은 질문을하고 그 질문을 파일에 씁니다. 그런 다음 다른 질문을 입력 할 것인지 묻습니다. '1'을 치면 반복되어 다른 질문을 입력하라고 요청합니다. 프로그램 자체는 아무 문제없이 실행 및 종료됩니다. 문제는 내가 얼마나 많은 질문을 입력하든 첫 번째 질문 만 작성합니다. 나머지는 빈 줄로 바뀝니다. 프로그램을 닫고 다시 실행하면 한 줄만 씁니다. 나는 cin.ignore가 그것과 관련이 있다고 확신하지만 그것을 고치는 법을 알 수 없다. 도와주세요.루프에있는 파일에 쓰는 데 문제가 있습니다.
#include <iostream>
#include <fstream>
#include <limits>
#include <string>
using namespace std;
int main()
{
string question;
int x;
ofstream a_file("test.txt",ios::app);
do
{
cout<<"Enter a question:\n\n";
getline(cin,question);
a_file<<question<<"\n";
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
cout<<"Would you like to enter another question?\n";
cout<<"1 for yes. 2 for no: ";
cin>>x;
}
while (x!=2);
a_file.close();
cout<<"\nYour submition has been saved. Have a nice day!\n";
cout<<"Press enter to close the program.";
cin.ignore();
cin.get();
}
그냥 제 컴파일러입니까, 아니면 코드에 다른 질문을하기 위해 옵션을 설정하면 건너 뛰고 메뉴가 다시 나타납니다? – Lemurr
@PabloLemurr 죄송합니다, 방금 게시를 업데이 트하는 잘못된 코드를 게시했습니다. 첫 번째 줄을 무시한 후 Enter 키를 누릅니다. 못생긴 수정 – taocp
수정이 있습니다 ... D 'if (question.length()> 0) cin.ignore (numeric_limits :: max(), '\ n');' 어린이, 집에서 이것을 시도하지 마십시오. –
Lemurr