1.cout.precision(n);保留n位有效位数,并且有自动舍弃多余的0的功能,
在 iostream中
2.cout.setf(ios::fixed); 十进制显示,而不用科学计数法,不过会把没用的0全
显示出来,很多余的一个功能
3. cout <<setprecision(3) <<x <<endl;显示3位小数不过使用的时候要注意需要包含头文件#include<iomanip>
才能使用
4. atof()函数,将字符串转换成double类型,相应的有将字符串转换成int型的atoi函数
程序
#include <iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{
string s("1234");
cout<<"s= "<<s<<endl;
float a;
a=atof(s.c_str());
cout<<"a= "<<a<<endl;
}
类定义完要加分号
类定义完要加分号
类定义完要加分号
编译检查不出来的
6.使用stringstream拼接字符串和数字
要注意的地方有
第一.使用ss>>s3;的时候遇到空格就停止了,也就是ss把它接收到的数据从开始到第一个空格输出给s3;
第二.ss.clear();并不能清空以前的输入,有效的办法是ss.str(" ");
第三.能把包括空格在内所有ss收到的数据输出给string的方法是s3=ss.str();
示例程序如下
#include<string>
#include<sstream>
using namespace std;
int main()
{
int index=1;
string s1="We_love";
string s2=" game!";
stringstream ss;
ss<<s1<<index<<s2;
string s3;
ss>>s3;
cout<<"s3 = "<<s3<<endl;
cout<<"next"<<endl;
ss.str(" ");
index=2;
ss<<s1<<index<<s2;
s3=ss.str();
cout<<"s3 = "<<s3<<endl;
}
程序结果为s3 = We_love1 next s3 = We_love2 game!
另一种实现类似功能的方法
#include<string>
int i=100;
string s="/rgb/"+to_string(i)+" ,png ";
7.c++中一种记时方法
#include<iostream>
#include<chrono>
using namespace std;
int main()
{
cout<<"开始记时"<<endl;
chrono::steady_clock::time_point t_start = chrono::steady_clock::now();
for(double i=0;i<10000;i++)
for(double j=0;j<10000;j++);
chrono::steady_clock::time_point t_end = chrono::steady_clock::now();
chrono::duration<double> time_used = chrono::duration_cast<chrono::duration<double>>(t_end-t_start);
cout<<"共用时 : "<<time_used.count()<<" seconds ."<<endl;
}
不过如果直接使用g++编译,会提示大致意思为需要支持c++11的error,此处使用cmake解决
PROJECT(main)#设置工程名
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)#设定版本
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
SET(CMAKE_CXX_COMPLILER "g++")#设定编译器
SET( CMAKE_BUILD_TYPE Release )
SET( CMAKE_CXX_FLAGS "-std=c++11 -O3")
add_executable(main main.cpp)
8.取整
floor(10.5)=10;ceil(10.5)=11;
floor(-10.5)=-11;ceil(-10.5)=10;
floor 是向下取整,ceil是向上取整
round(x)返回x的四舍五入整数值。