c++ - 我无法在以下代码中打印 double 值?

标签 c++ double cout

#include <iostream>
#include <iomanip>

using namespace std;

double distance(double, double);

int main ()
{
    double rate, time, distanceValue;

    cout << fixed << showpoint << setprecision(1);

    cout << "Enter rate" << endl;
    cin >> rate;

    cout << "Enter time" << endl;
    cin >> time;

    distanceValue = distance(rate, time);

    cout << "The distance is " << distanceValue << endl;
}

double distance (double num1, double num2)
{
    return num1 * num2;
}

当我尝试编译它时,我看到一长串错误我不知道这里出了什么问题!另外,如果我将方法从 double 更改为 int 值,它也能正常工作!!为什么??

以下错误:

*> C:\Users\kifcalip\Desktop\starting

out with c++\Chapter6>cl 06_012.cpp 06_012 Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved.

cl : Command line warning D9024 : unrecognized source file type '06_012', object file assumed 06_012.cpp C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xlocale(323) : warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(373) : error C2825: '_Iter': must be a class or namespace when followed by '::' 06_012.cpp(20) : see reference to class template instantiation 'std::iterator_traits<_Iter>' being compiled with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(373) : error C2039: 'iterator_category' : is not a member of 'global namespace'' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(373) : error C2146: syntax error : missing ';' b efore identifier 'iterator_category' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(373) : error C2602: 'std::iterator_traits<_Iter> ::iterator_category' is not a member of a base class of 'std::iterator_traits<_Iter>' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(373) : see declaration of 'std::iterator _traits<_Iter>::iterator_category' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(373) : error C2868: 'std::iterator_traits<_Iter> ::iterator_category' : illegal syntax for using-declaration; expected qualified-name with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(374) : error C2825: '_Iter': must be a class or namespace when followed by '::' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(374) : error C2039: 'value_type' : is not a memb er of 'global namespace'' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(374) : error C2146: syntax error : missing ';' b efore identifier 'value_type' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(374) : error C2602: 'std::iterator_traits<_Iter> ::value_type' is not a member of a base class of 'std::iterator_traits<_Iter>' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(374) : see declaration of 'std::iterator _traits<_Iter>::value_type' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(374) : error C2868: 'std::iterator_traits<_Iter> ::value_type' : illegal syntax for using-declaration; expected qualified-name with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(375) : error C2825: '_Iter': must be a class or namespace when followed by '::' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(375) : error C2039: 'difference_type' : is not a member of 'global namespace'' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(375) : error C2146: syntax error : missing ';' b efore identifier 'difference_type' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(375) : error C2602: 'std::iterator_traits<_Iter> ::difference_type' is not a member of a base class of 'std::iterator_traits<_Iter>' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(375) : see declaration of 'std::iterator _traits<_Iter>::difference_type' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(375) : error C2868: 'std::iterator_traits<_Iter> ::difference_type' : illegal syntax for using-declaration; expected qualified-name with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(377) : error C2825: '_Iter': must be a class or namespace when followed by '::' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(377) : error C2039: 'pointer' : is not a member of 'global namespace'' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(377) : error C2146: syntax error : missing ';' b efore identifier 'pointer' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(377) : error C2602: 'std::iterator_traits<_Iter> ::pointer' is not a member of a base class of 'std::iterator_traits<_Iter>' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(377) : see declaration of 'std::iterator _traits<_Iter>::pointer' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(377) : error C2868: 'std::iterator_traits<_Iter> ::pointer' : illegal syntax for using-declaration; expected qualified-name with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(378) : error C2825: '_Iter': must be a class or namespace when followed by '::' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(378) : error C2039: 'reference' : is not a membe r of '`global namespace'' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(378) : error C2146: syntax error : missing ';' b efore identifier 'reference' C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(378) : error C2602: 'std::iterator_traits<_Iter> ::reference' is not a member of a base class of 'std::iterator_traits<_Iter>' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(378) : see declaration of 'std::iterator _traits<_Iter>::reference' with [ _Iter=double ] C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\xutility(378) : error C2868: 'std::iterator_traits<_Iter> ::reference' : illegal syntax for using-declaration; expected qualified-name with [ _Iter=double ]

C:\Users\kifcaliph\Desktop\starting out with c++\Chapter6>*

最佳答案

猜测(因为您没有费心实际向我们展示相关错误)std::distance 之间存在歧义错误和 ::distance由于您的 using 指令,这正在发挥作用。完全合格::distance强制调用您的函数,或摆脱 using 指令并完全限定所有内容或为 namespace std 内的每个符号添加 using 声明您打算使用的。

还有,你拼错了distanceValue作为distancValuemain 的最后一行.

关于c++ - 我无法在以下代码中打印 double 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6392834/

相关文章:

c++ - _strrev 运行方式

c++ - 在 C++ 中使用 double/float 类型时如何设置精度

Java - 为什么我会收到 UnknownFormatConversionException?

c++ - 如何为代码块中的所有 cout 设置精度?

c++ - 错误 : 'cout' : undeclared identifier; though I've included iostream header file in program

c++ - 应该在带花括号的 return 语句中调用什么构造函数?

c++ - 临时对象的破坏顺序异常(exception)?

c++ - 缩放 View 时如何保持QGraphicsItem的大小和位置?

iphone - ios double 来自没有四舍五入的字符串

c++ - 在 C++ 中对自定义对象的 vector 进行操作