在C 中的用户输入上加上长的双文字后缀
Appending long double literal suffix to user inputs in c++
我有一个具有较长双向量的类:
MyClass{
vector<long double> myvec;
public:
MyClass(){ //Constructor }
// Some memeber functions that operate on the vector
};
我已经超载了输入操作员,我正在从用户中获取输入,然后将其推入向量。我遇到的问题是,如果用户输入一个超出双重范围的数字,则代码也应附加到输入上的长双后缀,而用户也应将用户添加。这是我到目前为止尝试的:
long double input;
...
input = (long double)(input + "L");
myvec.push_back(input);
我想到使用SCANF,但是我不确定输入运算符过载时使用的安全性如何。
使用 std::stold
将输入文本转换为长双重。没有后缀;stold
会做对了。源代码中需要告诉编译器文本代表哪种类型。当您从外部来源阅读时,不涉及编译器,因此您必须自己整理一下类型。
后缀仅用于文字值,例如auto x = 12345.0L
。您可以使用它们来防止隐式转换,因为浮点的默认类型是double
。
您不能在命名变量上使用它们。
问题是您如何获得输入?
相关文章:
- 增量运算符与后缀混淆
- constexpr 函数中的非文字(通过 std::is_constant_evaluated)
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 如何使用字符串文字作为宏参数
- 有没有办法从非C/C++文件中读取C++原始字符串文字的内容
- 构造<int>具有 2 个字符串文字的向量
- 将数字打印成文字
- 初始化或分配空字符串文字到指向 C 中的 char 的指针或指向 C++ 中 const char 的指针的原因是什么
- 方便地对C++中的所有字符串文字进行模糊处理
- 如何在OpenSSL库的名称中添加后缀'd'?
- C++17 十六进制浮点文字单精度后缀冲突?
- 常量函数,当其参数是对文字类型的引用时
- 使用带有链表的堆栈数据结构将中缀转换为后缀
- 连接 LPCSTR 变量和文字?
- 是否可以为字符串文字创建模板的用户定义文字(文字后缀)
- 在C 中的用户输入上加上长的双文字后缀
- 为什么 std::string 没有标准定义的文字后缀?
- 长双文字的C++后缀是什么?
- C++中是否有一个浮点文字后缀来使数字的精度翻倍
- 数字文字上的ULL后缀