C++编程总结

本文仅为记录在杭电ACM上使用C++做题过程中值得记录的技术使用细节。欢迎阅读和交流~~

1、两个技术点:A、C++中如何判断输入结束;B、如何在任何值的情况下保留两位小数输出(如5 --> 5.00)。

程序如下,实现了输入实数,输出绝对值的功能,且输出时保留两位小数。

注意#include <iomanip>

    double var;
    while(cin>>var)
    {
        if(var<0)
        {
            var=-var;
        }
        cout<<fixed<<setprecision(2)<<(double)var<<endl;
    }
      注意C++中循环输入数据要使用while(cin>>var)    ===    C语言中的while((scanf(***))!=EOF),因为C++中cin是个对象,不是返回>>输入操作符返回流对象的引用,cin >> x 返回istream&,而cout << x返回oostream&。if可直接判断流,如if (cin);while间接判断,如while (cin >> x),若流被标记错误(读取失败)就返回false,所以可以用while循环,ctrl+z,F6可跳出循环,这代表eof(文件结束符)。


       关于B,那么就是最后一句代码了。setprecision(n)首先需要include头文件iomanip,范例如下:

cout << setprecision(4)<< 3.1415926 << endl;//输出的结果是3.142
cout<<setprecision(3)<<12345.0<<endl;//输出的结果是 "1.23e+004 "
cout<<fixed<<setprecision(2)<<123.456<<endl;//输出的结果是123.46

可见,fixed与setprecision一起使用才能实现保留几位小数的功能(貌似setprecision(n)仅仅是保留几位有效数字的功能,因为它是算上整数部分的位数的,如果整数部分已经达到了或者超过了参数n,那么就会把小数点左移以实现保留n位数的目标)。


你可能感兴趣的:(C++编程总结)