Tôi đang cố gắng sử dụng hoạt động an toàn trong việc xử lý đầu vào với số lượng chỉ trong C++, vì vậy tôi sử dụng một đối tượng stringstream như vậy:Vấn đề với tái sử dụng một đối tượng stringstream
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
int first, second;
string input;
stringstream sstream;
cout << "First integer: ";
getline(cin, input);
sstream.str(input);
sstream >> first;
cout << first << endl; //display user input in integers
cout << "Second integer: ";
getline(cin, input);
sstream.str(input);
sstream >> second;
cout << second << endl; //display user input in integers
getline(cin, input); //pause program
return 0;
}
Tuy nhiên, lần thứ hai xung quanh nó dường như cung cấp cho biến 'thứ hai' một giá trị tùy ý. Đây là đầu ra:
First integer: 1
1
Second integer: 2
2293592
Nếu tôi khai báo hai đối tượng chuỗi và sử dụng chúng tương ứng cho cả hai biến, nó có vẻ hoạt động tốt. Điều này có nghĩa rằng tôi không thể tái sử dụng một đối tượng chuỗi trong cách tôi đang cố gắng làm? Trong chương trình thực sự của tôi, tôi có ý định xử lý nhiều hơn hai giá trị đầu vào từ người dùng, vì vậy tôi chỉ muốn đảm bảo nếu có một cách khác thay vì tạo ra nhiều đối tượng chuỗi. Tôi nghi ngờ nó có liên quan rất lớn nhưng tôi đang trên Windows XP và tôi đang sử dụng MinGW như trình biên dịch của tôi.
Tôi đánh giá rất cao sự giúp đỡ nào.
Chỉ cần những gì tôi đang tìm kiếm Tôi thích câu trả lời nhanh trên trang này – kaykun