一、基本结构:
#include<iostream>
using namespace std;
int main(){
cout<<"HELLO"<<endl;
return 0;
}
基本结构很简单,下面做一个输入输出的例子:
例题:输入球的半径,分别计算球的表面积和体积,并输出
(球表面积s=4*PI*r^2,体积V=4/3*PI*r^3)
#include <iostream>
using namespace std;
int main()
{
float r,s,v,t;
float PI=3.14;
cin>>r;
t=PI*r*r;
s=4*t;
v=t*r*4/3;
cout << "表面积="<<s << endl;
cout << "体积="<<v << endl;
return 0;
}
这种就是最最简单的,输入一次就结束。有输入有输出的小程序,与C非常相近
二、输入输出容易出错的地方
1.cin输入是会跳过空格,tab,backspace,enter的,所以输入如果想取到所有的字符,要用cin.get(ch),但是如果前面有输入的话,很有可能取到前面输入结束的回车。
2.给字符数组输入字符串应该用cin.getline(str,lenth),但是同样,前面有输入会读入回车,形成空串
3.用<iostream.h>这个旧头文件的时候键盘输入数字如果以0开头,会以为你输入的是八进制的数,0x被看做16进制,用<iostream>的话,0开头的数比如01就被当成1用了,需要再单独制定进制不然就是10进制。
例子:
#include <iostream>
using namespace std;
int main()
{
char a[20];
int i;
cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6]>>a[7]>>a[8]>>a[9];
a[10]='\0';
cout<<"刚刚保存的是:"<<a<<endl;
cout<<"再输入一次"<<endl;
cin.get(a[0]);cin.get(a[1]);cin.get(a[2]);cin.get(a[3]);cin.get(a[4]);
cin.get(a[5]);cin.get(a[6]);cin.get(a[7]);cin.get(a[8]);cin.get(a[9]);
cin.get(a[10]);cin.get(a[11]);cin.get(a[12]);cin.get(a[13]);
a[14]='\0';
cout<<"刚刚保存的是:"<<a<<endl;
return 0;
}
可以运行一下发现第一次输出空格全无,第二次输出却只从回车开始,中间有空格
这里a[0]里存的是上一次输入结束的那个回车。a[14]是这次输入的回车。
试试getline的错误吸收
#include <iostream>
using namespace std;
int main()
{
char a[20],b[20];
int i;
cin>>i;
cout<<"i输入结束,i是"<<i<<endl;
cout<<"用cin.getline吸收字符"<<endl;
cin.getline(a,18);
cin.getline(b,18);
cout<<a<<endl;
cout<<"a输出结束"<<endl;
cout<<b<<endl;
cout<<"b输出结束"<<endl;
return 0;
}
这里getline取得a是回车,b才是对应的字符串。