저는 어제부터 C ++를 배우려고 노력하고 있으며이 문서를 사용하고 있습니다 : http://www.cplusplus.com/files/tutorial.pdf (page 32). 문서에서 코드를 찾아 실행했습니다. 가격은 Rs 5.5, 수량은 정수로 입력했는데 출력은 0이었습니다. 5.5와 6을 입력 해 보았는데 출력이 맞았습니다.
// stringstreams
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
string mystr;
float price = 0;
int quantity = 0;
cout << "Enter price: ";
getline (cin,mystr);
stringstream(mystr) >> price;
cout << "Enter quantity: ";
getline (cin,mystr);
stringstream(mystr) >> quantity;
cout << "Total price: " << price*quantity << endl;
return 0;
}
질문 : mystring 명령은 정확히 무엇을합니까? 문서에서 인용 :
"이 예에서는 표준 입력에서 간접적으로 숫자 값을 얻습니다. 표준 입력에서 직접 숫자 값을 추출하는 대신 표준 입력 (cin)에서 문자열 객체 (mystr)로 줄을 가져온 다음 정수를 추출합니다. 이 문자열의 값을 int (수량) 유형의 변수로 변환합니다. "
내 인상은 함수가 문자열의 필수 부분을 취하여 입력으로 사용한다는 것입니다.
(여기에서 질문하는 방법을 정확히 모르겠습니다. 저도 프로그래밍이 처음입니다.) 감사합니다.
stringstream
작동 하는지 보여주기 위해 예를 들어야했을 것 입니다. 그것은 아마도 나쁜 것조차도 기괴한 것입니다 =) 그러나 그것은 당신이 문자열을 스트림으로 취급 할 수 있음을 보여줍니다.
stringstream
분명히 잘못된 예입니다. 그리고 그것이 그렇더라도 그것은 다르게 작성되어야합니다.
stringstream
그런 식으로 사용한 적이 없습니다 . 나는 일반적으로 라인을로드하고 변환 한 다음 부분별로 추출합니다. 그러나 이것은 이미 입력 스트림cin
이 있기 때문에 여기에는 분명히 이점이 거의 없습니다 ... 그래서cin >> price >> quantity;
훨씬 더 간단 할 것입니다. 그것은 cplusplus.com 튜토리얼을 사용 하지 않는 좋은 이유가 될 것 입니다.