이것은 처음 stackoverflow를 사용하는 것입니다. getline과 관련하여 필요한 정보를 찾을 수 없었습니다. 엔지니어링 전송을위한 간단한 프로그래밍 수업을 진행하고 있으므로 우리가 작성하는 코드는 매우 간단합니다. 내가 여기서하려고하는 것은 사용자가 정의한 수의 질문과 답변을 두 개의 다른 배열에 넣는 것입니다. 나는 일부를 입력 대답뿐만 아니라 파일의 저장 데이터를 기록getline + 문자열에 대해 이해할 수없는 점은 무엇입니까?
int main()
{
srand((unsigned)time(0));
string quest1[100], answ1[100];
int size1, x = 0, num, count1, visit[100], shuffle[100];
fstream flashcard1;
cout << "flashcard.cpp by NAME\n" << endl;
cout << "This program allows user to manipulate questions and answers for studying.\n" << endl;
cout << "\nHow many flash cards will be entered(MAX 100)? ";
cin >> size1;
cout << endl;
while(x < size1)
{
cout << "Enter Question: ";
getline(cin , quest1[x]);
cout << endl;
x = x++;
/*
cout << "Enter Answer: " << endl;
getline(cin,answ1[x]);
cout << endl;
flashcard1.open("flashcard1.dat", ios::app);
flashcard1 << quest1[x] << " " << answ1[x] << endl;
flashcard1.close();
cout << "Data Stored." << endl;
*/
}
}
: 내 while 루프 (나는 그것을 깨는 중지 할 경우 단지보기 위해 루프를 사용하지만, 동안으로 전환되었다)과 같다 디버깅 용입니다. 프로그램을 실행하면 첫 번째 질문에 대한 getline을 건너 뛰고 "Enter 질문"의 두 번째 루프를 표시하고 나머지는 getline이 작동합니다. 따라서 size1이 5 인 경우 프로그램은 배열 위치 1-4 만 채 웁니다. 도와주세요. 이것은 공부하고 셔플하기 위해 플래시 카드를 만드는 것과 같은 일을하는 간단한 플래시 카드 프로그램입니다. 당신이
cin >> size1;
을 할 때 번호를 입력하고 Enter 키를 누르 때문에
'x = x ++;'는 정의되지 않은 동작입니다. 'x ++ '(또는'++ x' 또는'x + = 1' 또는'x = x + 1' 또는'x - = -1' ....)이어야합니다. –
이것은 x ++와 ++ x는 둘 다 값을 1 씩 in/decrement하여 x 자체를 변경합니다. 할당이 이전이나 이후에 발생한다고 보장 할 수 없으므로 x가 증가하기 전에 x ++에 값을 할당 할 수 있습니다. 표준은 이것만을 지정하지 않는다). –
좋은 첫 번째 질문에 대한 +1. –