代码之家  ›  专栏  ›  技术社区  ›  Josh Curren

如何在C++中从文件中读取一个文件

  •  2
  • Josh Curren  · 技术社区  · 15 年前

    如何从C++中的一个文件中读取一个二进制文件?

    对于int,我知道可以使用getline()然后使用atoi,但是我没有找到一个数组来实现双重函数。什么可用于读取double或将char数组转换为double?

    4 回复  |  直到 15 年前
        1
  •  3
  •   R Samuel Klatchko    15 年前

    您可以使用流提取:

    std::ifstream ifs(...);
    double d;
    ifs >> d;
    

    这项工作假设流中的下一个数据在文本表示中应该是双精度的,而不是空白。

    提取之后,您可以检查流的状态以查看是否存在错误:

    ifs >> d;
    if (!ifs)
    {
        // the double extraction failed
    }
    
        2
  •  3
  •   wilhelmtell    15 年前

    不要考虑使用atof()或任何ato。函数,因为它们不允许您诊断错误。看一看 strtod strtol . 或者使用流提取运算符。

        3
  •  2
  •   Johan Boulé    15 年前

    我想知道,是否需要对语言环境设置小心(例如,语言环境可以使用逗号而不是点来分隔小数部分)或者stringstreams总是默认使用一些标准的“c语言环境”符号?

        4
  •  0
  •   Mohamed Mansour    15 年前

    你可以利用 istringstream 例如,这里有todouble和toint:

    double toDouble(string s) {
      double r = 0;
      istringstream ss(s);
      ss >> r;
      return r;
    }
    
    int toInt(string s) {
      int r=0;
      istringstream ss(s);
      ss >> r;
      return r;
    }