Linux下程式开发2 变量数据类型的代码以及编译&运算符与表达式
变量数据类型的代码以及编译&运算符与表达式
实例1
[root@localhost code]# vim float.cpp
[root@localhost code]# g++ float.cpp
float.cpp: In function `int main()':
float.cpp:14: parse error before `(' token
[root@localhost code]#
修改如下:
#include <iostream>
#include<iomanip>
using namespace std;
int main (void)
{
float f;
double d;
long double ld;
f=1.23456789f;
d=1.23456657675677657;
ld=1.23454356465656565464555364L;
cout <<"effect number characters"<<endl;
cout<<"float f="<<setprecision(10)<<f<<endl;
cout<<"double d="<<setprecision(20)<<d<<endl;
cout<<"long double ld="<<setprecision(29)<<ld<<endl;
f=1e36f;
d=1e307;
ld=1e4930L;
cout <<endl<<"Exponent"<<endl;
cout<<setiosflags(ios::scientific);
cout<<"float f="<<f<<endl;
cout<<"double d="<<d<<endl;
cout<<"long double ld="<<ld<<endl;
[root@localhost code]# g++ float.cpp -o float.out
[root@localhost code]# ./float.out
effect number characters
float f=1.234567881
double d=1.2345665767567766
long double ld=1.2345435646565656547
Exponent
float f=9.99999961690316245e+35
double d=9.99999999999999986e+306
long double ld=1.00000000000000000003e+4930
教科书中,说c++ 存储浮常数也就是float这一类,预设类型为double,另外,爱将某浮点数值指定为float存储时候,必须在数值字未加f,F;
float有效精度7位
还有,使用控制精度,需加#inlcude<iomanip>
实例2
#include<iostream>
using namespace std;
int main(void)
{
float f=1e36f;
if (abs(f-1e36)<1e30)
{ f=f+5e35;
cout<<"float f="<<f<<endl;
}
return 0;
}
[root@localhost code]# g++ compare.cpp
[root@localhost code]# g++ compare.cpp -o compare.out
[root@localhost code]# ./compare.out
float f=1.5e+36
实例3
#include<iostream>
using namespace std;
int main (void)
{
char ch1='A';char ch2=65;
cout<<"ch1= '"<<chl<<"'"<<endl;
cout<<"ch2= '"<<ch2<<"'"<<endl;
return 0;
}
char.cpp: In function `int main()':
char.cpp:5: parse error before `char'
char.cpp:6: `chl' undeclared (first use this function)
char.cpp:6: (Each undeclared identifier is reported only once for each function
it appears in.)
char.cpp:7: `ch2' undeclared (first use this function)
原因如下: char ch1='A';char ch2=65; 中间的;用逗号
修改后还是报错:
char.cpp: In function `int main()':
char.cpp:6: `chl' undeclared (first use this function)
char.cpp:6: (Each undeclared identifier is reported only once for each function
it appears in.)
原因非常明确: cout<<"ch1= '"<<chl<<"'"<<endl; 应该改为 cout<<"ch1= '"<<ch1<<"'"<<endl; 显然,1和l经常录错.
这回正确了
教科书说:A 的ASCII码为65,所以,直接用65 结果是一样的.
实例4 转义序列
#include
匈牙利命名法
变量的有效范围
#include <iostream>
using namespace std;
int main(void)
{
int i=1;
{
int j=2
cout<<"i="<<i<<",j="<<j<<endl;
}
cout<< "j="<<j<endl;
return 0;
}
验证错误:
[root@localhost code]# g++ bloack.cpp
bloack.cpp: In function `int main()':
bloack.cpp:8: parse error before `<<' token
bloack.cpp:10: `j' undeclared (first use this function)
bloack.cpp:10: (Each undeclared identifier is reported only once for each
function it appears in.)
当广域变量遇上区域变量的时候:
广域变量暂时被区域变量盖住,若爱指定存取广域变量时候,可以运用::这个解析运算符.
代码:
#include<iostream>
using namespace std;
int i=1;
int main(void)
{
int i=2;
cout<<"i="<<i<<endl;
cout<<"::i="<<::i<<endl;
return 0;
}
运行结果
[root@localhost code]# ./loc_glo.out
i=2
::i=1
常数,自定义数,和const常数和#define:
#include <iostream>
using namespace std;
#define HI cout<<"hello!fleetwgx"<<endl;
int main(void)
{ const int a=100;
HI cout<< "\n" << endl; HI
cout<<"\na="<<a<<endl;
return 0;
[root@localhost code]# ./hi.out
hello!fleetwgx
hello!fleetwgx
a=100
读入语句cin;
代码:
#include<iostream>
using namespace std;
int main(void)
{
double input_double;
int input_int;
cout<<"please input a float_point number!"<<endl;
cin>>input_double;
cout<<input_double<<"is inputed.\n"<<endl;
cout<<"please input a float-point number as well as an integer number!"<<endl;
cin>>input_double>>input_int;
cout<<input_double<<"and"<<input_int<<"is inputed ."<<endl;
return 0;
}
运行结果:
[root@localhost code]# ./cin.out
please input a float_point number!
3.1415926789096456803486034344546578675075679657853875843728075
3.14159is inputed.
please input a float-point number as well as an integer number!
3.14159 3
3.14159and3is inputed .
[root@localhost code]#