\n";
return0;
}
程序7,字符串流(stringstream)的使用(将一个字符串转换为一个整数)
#include
#include
#include
usingnamespacestd;
intmain()
{
stringmystr;
floatprice=0;
intquantity=0;
cout<<"Enterprice:
";
getline(cin,mystr);//使用函数getline从标注输入流cin中读取字符串对象(mystr)
stringstream(mystr)>>price;//从字符串对象中提取数值price
cout<<"Enterquantity:
";
getline(cin,mystr);
stringstream(mystr)>>quantity;//从这个字符串对象中提取数值quantity
cout<<"Totalprice:
"<return0;
}
程序7,while循环倒计数程序
#include
usingnamespacestd;
intmain()
{
intn;
cout<<"Enterthestartingnumber>";
cin>>n;
while(n>0){
cout<--n;
}
cout<<"FIRE!
\n";
return0;
}
程序7,dowhile结构,重复输出用户输入的任何数值,直到用户输入0为止
#include
usingnamespacestd;
intmain()
{
unsignedlongn;
do{
cout<<"Enternumber(0toend):
";
cin>>n;
cout<<"Youentered:
"<}while(n!
=0);
return0;
}
程序8,arraysexample
#include
usingnamespacestd;
intbilly[]={16,2,77,40,12071};
intn,result=0;
intmain(){
for(n=0;n<5;n++){
result+=billy[n];
}
cout<return0;
}
//arraysasparameters
#include
usingnamespacestd;
voidprintarray(intarg[],intlength){
for(intn=0;ncout<}
cout<<"\n";
}
intmain(){
intfirstarray[]={5,10,15};
intsecondarray[]={2,4,6,8,10};
printarray(firstarray,3);//打印数组,即原样数组元素
printarray(secondarray,5);//打印数组
return0;
}
//settingvaluetostring
#include
#include
usingnamespacestd;
intmain(){
charszMyName[20];
strcpy_s(szMyName,"J.Soulie");//strcpy替换为strcpy_s,否则会出现错误
cout<return0;
}
//下面的例子重复输出用户在键盘上的任何输入。
用到了数组。
这个例子简单的显示了如何使用cin.getline来输入字符串:
//cinwithstrings
#include
usingnamespacestd;
intmain(){
charmybuffer[100];
cout<<"What'syourname?
";
cin.getline(mybuffer,100);
cout<<"Hello"<cout<<"Whichisyourfavouriteteam?
";
cin.getline(mybuffer,100);
cout<<"Ilike"<return0;
}
//cinandato*functions
#include
#include//不可以去掉.h
usingnamespacestd;
intmain(){
charmybuffer[100];
floatprice;
intquantity;
cout<<"Enterprice:
";
cin.getline(mybuffer,100);
price=atof(mybuffer);//类型转换,string型转换为float型
cout<<"Enterquantity:
";
cin.getline(mybuffer,100);
quantity=atoi(mybuffer);//类型转换,string型转换为int型
cout<<"Totalprice:
"<return0;
}
//myfirstpointer
#include
usingnamespacestd;
intmain(){
intvalue1=5,value2=15;
int*mypointer;
mypointer=&value1;
*mypointer=10;
mypointer=&value2;
*mypointer=20;
cout<<"value1=="<return0;
}
//指针数组
#include
usingnamespacestd;
intmain()
{
voidsort(char*name[],intn);//声明函数
voidprint(char*name[],intn);//声明函数
char*name[]={"BASIC","FORTRAN","C++","Pascal","COBOL"};//定义指针数组
intn=5;
sort(name,n);
print(name,n);
return0;
}
voidsort(char*name[],intn)
{
char*temp;
inti,j,k;
for(i=0;i{
k=i;
for(j=i+1;jif(strcmp(name[k],name[j])>0)k=j;
if(k!
=i)
{
temp=name[i];name[i]=name[k];name[k]=temp;
}
}
}
voidprint(char*name[],intn)
{
inti;
for(i=0;icout<}
//指针变量也可以指向一个函数
#include
usingnamespacestd;
intmain()
{
intmax(intx,inty);//函数声明
int(*p)(int,int);//定义指向函数的指针变量p
inta,b,m;
p=max;//使p指向函数max
cin>>a>>b;
m=p(a,b);
cout<<"max="<return0;
}
intmax(intx,inty)
{
intz;
if(x>y)z=x;
elsez=y;
return(z);
}
//exampleaboutstructures
#include
#include
#include//采用stdlib.h而不是stdlib
usingnamespacestd;
structmovies_t{
chartitle[50];
intyear;
}mine,yours;
voidprintmovie(movies_tmovie);
intmain(){
charbuffer[50];
strcpy_s(mine.title,"2001ASpaceOdyssey");//采用strcpy_s而不是strcpy
mine.year=1968;
cout<<"Entertitle:
";
cin.getline(yours.title,50);
cout<<"Enteryear:
";
cin.getline(buffer,50);
yours.year=atoi(buffer);
cout<<"Myfavouritemovieis:
\n";
printmovie(mine);
cout<<"Andyours:
\n";
printmovie(yours);
return0;
}
voidprintmovie(movies_tmovie){
cout<cout<<"("<}
//classesexample
#include
usingnamespacestd;
classCRectangle{
intx,y;
public:
voidset_values(int,int);
intarea(void){return(x*y);}
};
voidCRectangle:
:
set_values(inta,intb){
x=a;
y=b;
}
intmain(){
CRectanglerect;
rect.set_values(3,4);
cout<<"area:
"<}
//classexample
#include
usingnamespacestd;
classCRectangle{
intwidth,height;
public:
CRectangle(int,int);
intarea(void){return(width*height);}
};
CRectangle:
:
CRectangle(inta,intb){
width=a;
height=b;
}
intmain(){
CRectanglerect(3,4);
CRectanglerectb(5,6);
cout<<"rectarea:
"<cout<<"rectbarea:
"<}
//不带参数的构造函数的使用
#include
usingnamespacestd;
classTime
{
public:
Time()//定义构造成员函数,函数名与类名相同
{
hour=0;//利用构造函数对对象中的数据成员赋初值
minute=0;
sec=0;
}
voidset_time();//函数声明
voidshow_time();//函数声明
private:
inthour;//私有数据成员
intminute;
intsec;
};
voidTime:
:
set_time()//定义成员函数,向数据成员赋值
{
cin>>hour;
cin>>minute;
cin>>sec;
}
voidTime:
:
show_time()//定义成员函数,输出数据成员的值
{
cout<"<"<}
intmain()
{
Timet1;//建立对象t1,同时调用构造函数t1.Time()
t1.set_time();//对t1的数据成员赋值
t1.show_time();//显示t1的数据成员的值
Timet2;//建立对象t2,同时调用构造函数t2.Time()
t2.show_time();//显示t2的数据成员的值
return0;
}
//构造函数的重载,比如说定义两个构造函数,一个无参数,一个有参数。
#include
usingnamespacestd;
classBox
{
public:
Box();//声明一个无参的构造函数
Box(inth,intw,intlen):
height(h),width(w),length(len){}
//声明一个有参的构造函数,用参数的初始化表对数据成员初始化
intvolume();
private:
intheight;
intwidth;
intlength;
};
Box:
:
Box()//定义一个无参的构造函数
{
height=10;
width=10;
length=10;
}
intBox:
:
volume()
{
return(height*width*length);
}
intmain()
{
Boxbox1;//建立对象box1,不指定实参
cout<<"Thevolumeofbox1is"<Boxbox2(15,30,25);//建立对象box2,指定3个实参
cout<<"Thevolumeofbox2is"<return0;
}
//pointertoclassesexample
#include
usingnamespacestd;
classCRectangle{
intwidth,height;
public:
voidset_values(int,int);
intarea(void){return(width*height);}
};
voidCRectangle:
:
set_values(inta,intb){
width=a;
height=b;
}
intmain(){
CRectanglea,*b,*c;
CRectangle*d=newCRectangle[2];
b=newCRectangle;
c=&a;
a.set_values(1,2);
b->set_values(3,4);
d->set_values(5,6);
d[1].set_values(7,8);
cout<<"aarea:
"<cout<<"*barea:
"<area()<cout<<"*carea:
"<area()<cout<<"d[0]area:
"<cout<<"d[1]area:
"<return0;
}