Đây là lần đầu tiên tôi sử dụng stackoverflow. Tôi đã không thể tìm ra thông tin tôi cần về đường dây. Tôi đang ở trong một lớp lập trình đơn giản để chuyển giao kỹ thuật nên mã mà chúng tôi viết khá đơn giản. Tất cả những gì tôi đang cố gắng làm ở đây là đặt một số câu hỏi và câu trả lời do người dùng xác định vào hai mảng khác nhau. Vòng lặp while của tôi trông như thế này (tôi đã sử dụng một vòng lặp for nhưng chuyển sang trong khi chỉ để xem nếu nó sẽ ngăn chặn vi phạm):Tôi không hiểu gì về chuỗi 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;
*/
}
}
tôi ghi nhận ra câu trả lời vào phần cũng như lưu dữ liệu đến tập tin chỉ để gỡ lỗi. Khi tôi chạy chương trình nó bỏ qua getline cho câu hỏi đầu tiên, hiển thị vòng lặp thứ hai của "Nhập câu hỏi" và getline hoạt động cho phần còn lại của chúng. Vì vậy, nếu tôi có một size1 của 5, chương trình chỉ điền vào các vị trí mảng 1-4. Hãy giúp tôi. Đây là một chương trình thẻ flash đơn giản sẽ thực hiện tương tự như khi bạn tạo thẻ flash để nghiên cứu và trộn chúng.
'x = x ++;' là Hành vi không xác định. Nó chỉ nên là 'x ++' (hoặc '++ x', hoặc' x + = 1', hoặc 'x = x + 1', hoặc' x - = -1' ....) –
Đó là vì x ++ và ++ x cả hai thay đổi x bằng cách/giảm giá trị của nó bằng 1. Bạn không thể đảm bảo rằng phép gán xảy ra trước hoặc sau này, vì vậy x có thể được gán giá trị của x ++ trước khi gia tăng xảy ra hoặc sau khi nó xảy ra (tiêu chuẩn chỉ không xác định điều này). –
+1 cho câu hỏi hay về SO. –