自昨天以来,我一直在尝试学习C ++,并且正在使用以下文档:http : //www.cplusplus.com/files/tutorial.pdf(第32页)。我在文档中找到了代码,然后运行了它。我尝试输入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教程的一个很好的理由。