c++ - 将输入字符串转换为 float / double C++

标签 c++ string double

所以我知道如何在 C# 中执行此操作,但不知道如何在 C++ 中执行此操作。我正在尝试将 giver 用户输入解析为 double(以便稍后进行数学运算),但我是 C++ 的新手并且遇到了麻烦。帮忙?

C#

 public static class parse
        {
            public static double StringToInt(string s)
            {
                double line = 0;
                while (!double.TryParse(s, out line))
                {
                    Console.WriteLine("Invalid input.");
                    Console.WriteLine("[The value you entered was not a number!]");
                    s = Console.ReadLine();
                }
                double x = Convert.ToDouble(s);
                return x;
            }
        }

C++ ? ? ? ?

最佳答案

看看atof。请注意,atof 采用 cstrings,而不是字符串类。

#include <iostream>
#include <stdlib.h> // atof

using namespace std;

int main() {
    string input;
    cout << "enter number: ";
    cin >> input;
    double result;
    result = atof(input.c_str());
    cout << "You entered " << result << endl;
    return 0;
}

http://www.cplusplus.com/reference/cstdlib/atof/

关于c++ - 将输入字符串转换为 float / double C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16842602/

相关文章:

c# - 我怎样才能 TryParse() 用户输入的字符串?

ios - 类型 'Double' 没有成员 'random'

java - 空指针异常的解释

java - 可以在同一应用程序中将 C++ 用作后端,将 Javafx 用作前端吗?

c++ - 为什么C++不允许匿名结构?

arrays - 字符串解析为数组的最佳算法

string - 寻求基本字符串差异算法的建议

c++ - libxml2 xmlChar* 转换为 char*

c++ - "operations.hpp"中的 OpenCV 2.4.2 编译问题

java - 避免对字符串进行递归替换