C++有一个I/O操纵器,称为"固定",以固定(非科学)形式输入/输出浮点数.它适用于输出,但我不明白如何使输入正常工作.
考虑这个例子:
#include <sstream>
#include <iostream>
using namespace std;
int main() {
double value;
istringstream("1.4e1") >> fixed >> value;
cout << value << endl;
}
Run Code Online (Sandbox Code Playgroud)
在我看来,它应该像这样工作.输入流有一些字符串.当我们fixed对它应用操纵器并尝试读取double/float时,它应该停在第一个不是数字或点的字符上(不接受第二个/第三个/更多次点).因此,正确的输出将是1.4(当我们遇到时我们停止处理输入'e').
相反,此代码输出14.为什么?它是如何工作的以及fixed输入流的目的是什么?如何读取输入流中的double并停止'e'(将其保留在输入流中)?