为什么setprecision会出错?什么是setprecision

时间:2016-02-26 12:08:45

标签: c++ dev-c++

我老师给了我这个,添加

时出错了
«setprecision(3) <<setiosflags(ios::fixed) »

你能告诉我为什么吗?

#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
main()
{
    float x1,y1,x2,y2,x3,y3,x4,y4,PQ,QR,RS,SP,Keliling;
    cout << "Masukkan koordinat empat titik berbeda (x,y) :\n";
    cout<< "P(x,y):" ;
    cin >> x1>>y1 ;
    cout <<"\n" ;
    cout << "Q(x,y) :" ;
    cin >> x2>>y2 ;
    cout <<"\n" ;
    cout << "R(x,y) :" ;
    cin>> x3>>y3 ;
    cout <<"\n" ;
    cout << "S(x,y) :" ;
    cin >>x4>>y4;
    cout <<"\n" ;

    PQ = sqrt(pow(x2-x1,2)+pow(y2-y1,2));
    QR = sqrt(pow(x3-x2,2)+pow(y3-y2,2));
    RS = sqrt(pow(x4-x3,2)+pow(y4-y3,2));
    SP = sqrt(pow(x1-x4,2)+pow(y1-y4,2));

    Keliling = PQ+QR+RS+SP;
    cout << "Kelilingnya adalah " << Keliling <<" satuan";
    «setprecision(3) <<setiosflags(ios::fixed) »
    return 0 ;
}

3 个答案:

答案 0 :(得分:4)

因为你误解了这条指令。你不能只是在程序结束时将它转储到代码中的代码中,并期望它神奇地工作,你不能在其上保留法语引号。

您需要从逻辑上思考您的程序的功能以及顺序。您想要完成什么,以及如何告诉计算机如何帮助您完成它?

一个良好的开端是谷歌搜索setprecision以了解它是什么以及如何使用它。

此外,您的程序还有其他问题,例如main缺少返回类型。

答案 1 :(得分:3)

sestprecision是一个操纵器,您可以将其传递到cout流来定义逗号后应显示的位数,例如:

    cout << setprecision(2) << 0.122312 << endl;

将导致

    0.12

它会导致错误,因为你没有把它放到流中但是无处 - 它不是一个声明!

答案 2 :(得分:1)

该行的问题在于它不是有效的cpp语句

setprecision语句需要连接到输出流,因为您使用的是标准输出。修正将如下所示

cout << setprecision(2) << fixed << endl;

再次就像preferencebean所说,你的主要功能应该包括一个返回类型。

int main() 
{
  //code;
}
相关问题