fstream阻止math.h工作

时间:2011-11-22 17:17:33

标签: c++ fstream math.h

  

可能重复:
  cmath compilation error when compiling old C++ code in VS2010
  Compilation fails in VS2010 for C++ programs building fine in Linux

我正在用C ++创建一个程序,我需要在其中读取一个文本文件。我已经包含了fstream头文件,它允许我打开文件,但是添加了include,我现在收到了无数错误math.h函数。例子:

1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(19): error C2061: syntax error : identifier 'acosf'
1>c:\program files\microsoft visual studio 10.0\vc\include\cmath(19): error C2059: syntax error : ';'

有没有什么方法可以在不损害math.h函数的情况下包含fstream的文本文件读取功能?为什么会发生这种冲突呢?

/ 修改 /

似乎错误出现在cmath标准头文件中。这是我无法访问的,但为了完成,以下是导致错误的代码:

using _CSTD acosf; using _CSTD asinf;
using _CSTD atanf; using _CSTD atan2f; using _CSTD ceilf;

(等等)

1 个答案:

答案 0 :(得分:0)

编译并运行:

#include <fstream>
#include <math.h>

int main()
{
    std::ofstream f("test.txt", std::ios::out);
    f << std::acos((float)0);
    return 0;
}

math.h上的acos(double),acos(float),acos(long double)的定义已经超载,不需要使用acosf。

您的代码某处出现错误。