Tôi khuyên bạn nên sử dụng luồng chuỗi. Bạn có thể sử dụng các toán tử I/O quá tải như bạn muốn với tiêu chuẩn trong/ra tiêu chuẩn. Một cái gì đó như thế này:
string tempString = "123 ab";
int firstArg;
string secondArg;
stringstream stream(tempString);
stream >> firstArg >> secondArg;
cout << firstArg << " " << secondArg;
Cá nhân tôi sẽ tìm thấy điều này là rõ ràng hơn một chút so với đọc sách trong một chuỗi để tiêu chuẩn trong và sau đó sử dụng tiêu chuẩn trong của tôi khai thác/O, nhưng có lẽ có một lý do bạn muốn đọc nó với tiêu chuẩn đầu tiên mà tôi không nhận ra.
Hy vọng điều này sẽ hữu ích!
Nguồn
2011-02-07 19:00:02
Nếu bạn muốn sử dụng mảng char thay vì chuỗi std: bạn có thể sử dụng cin.getline (s, n); Trong đó n là "số ký tự cần lưu trữ (bao gồm ký tự null kết thúc)". Xem http://www.cplusplus.com/reference/iostream/istream/getline/. Ngoài ra còn có một getline cho std :: string, xem http://www.cplusplus.com/reference/string/getline/ – anno
@anno: Đọc 'cin' ** từ ** một chuỗi, không phải từ' cin' vào một chuỗi. –