C++ cin >> 双重不科学

C++ cin >> double not in scientific

本文关键字:gt 不科学 cin C++      更新时间:2023-10-16
std::stringstream is ( "a12.34e" );
double d;
char c;
is >> c >> d;
// d = 0

如何使双精度读取为std::fixed而不是std::scientific (12.34e+001)?

删除数字后的 e 将产生 12.34 作为输出。

正如对您的问题的第一条评论所示,以下内容也有效:

#include <cstdio>
int main() {
    double d;
    char c;
    sscanf("a12.34e", "%c%lf", &c, &d);
    printf("%c %lfn", c, d); 
    return 0;
}

输出:A 12.340000

std::stringstream is ( "a12.34e" );
double d;
char c;
is >> c >>std::fixed >> d;