JIg*_*use 6 c++ io inputstream input
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'(将其保留在输入流中)?
你应该使用 std::scientific 我尝试过这样的:
#include <sstream>
#include <iostream>
using namespace std;
int main() {
double value;
cin >> std::fixed>> std::scientific >> value;
cout << std::scientific<<value << endl;
}
Run Code Online (Sandbox Code Playgroud)
输入:1.4e1 输出:1.400000e+01
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |