文章目录
前言
本篇文章主要介绍了C/C++基本的输入和几个简单的数据类型
提示:以下是本篇文章正文内容,下面案例可供参考
1.控制台账号输入
1.1 项目需求
让用户输入账号和密码.
1.2 项目实现
准备工作:在项目CP1中添加cpp文件
admin.cpp
#include<iostream>
#include<Windows.h>
using namespace std;
int main() {
char loginName;
int pwd;
cout << "请输入用户名:";
/*
* 输入函数cin和scanf()
* 1.cin 与 >> 符号结合使用
* cin >> a;
* cin >> a >> b = cin >> a;cin>>b
* 2.scanf()函数
* scanf("%d%c%s",intNum,charNum,stringNum);
*/
cin >> loginName;
cout << "请输入密码:";
cin >> pwd;
system("pause");
cout << "您输入的账号是:" << loginName << endl;
cout << "您输入的密码是:" << pwd << endl;
system("pause");
return 0;
}
运行结果:
1.3 知识锦囊:输入缓冲区与C++的数据类型
1.3.1 输入缓冲区
输入原理: 程序的输入都有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin对象直接从输入缓冲区中取数据。正因为cin对象是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin对象会直接取得这些残留数据而不会请求键盘输入详解请参考:selina8921的博客
1.3.2 变量
- 作用: 编程时,需要用到各种变量来存储各种信息。
- 变量保留的是它所存储的值的内存位置。
- 创建一个变量时,就会在内存中保留一些空间。
变量的命名规范:
1)只能包含3种字符(数字、大/小写字母,下划线)
2)不能以数字开头(即,只能以字母或下划线开头)
3)不能和“关键字”同名(c语言内部已经使用的“名称”),比如类型名int
4)变量名的最大长度,C语言没有规定。最大长度限制,取决于编译器,一般都在32以上。
变量的命名风格:
1)下划线风格:int student_age;(常用于变量名和函数名)
2)小驼峰风格:int studentAge;(常用于变量名和函数名)
3)大驼峰风格:int StudentAge;(一般用于类名)
4)全部大写:#define MAX_AGE;(一般用于宏)
1.3.3 数据类型
- 作用:编译器预算对象(变量)分配的内存空间大小。
- 变量可能存储各种数据类型(比如字符型、宽字符型、整型、浮点型、双浮点型、布尔型等)的信息,操作系统会根据变量的数据类型,来分配内存和决定在保留内存中存储什么。
具体可见:C++数据类型(菜鸟教程)
关于变量类型的理解可见:C++变量类型(菜鸟教程)
2.浮点数据的输出控制
2.1 项目需求
控制浮点数的打印
2.2 项目实现
#include<iostream>
#include<Windows.h>
using namespace std;
int main() {
/* 注意:
常量3.14f(或3.14F)是float类型的常量
正常境况下3.14是double类型的常量
*/
double doubleNum = 123.456789;
//浮点数cout输出时默认精度为6,包括小数点前和小数点后
cout << "默认情况下的doubleNum:" << doubleNum << endl;
//把精度(有效数字)修改为4
cout.precision(4);
cout << "精度修改为4的doubleNum:" << doubleNum << endl;
//定点发修改小数点后的精度
cout.flags(cout.fixed);
cout << "定点法的doubleNum:" << doubleNum << endl;
//把精度恢复为默认情况
cout.unsetf(cout.fixed);//取消定点
cout.precision(6);//恢复为6精度
cout << "精度恢复后的doubleNum:" << doubleNum << endl;
system("pause");
return 0;
}
运行结果:
2.3 知识锦囊:浮点型数据的存储
浮点型变量是用来存储小数数值的。在C语言中, 浮点型变量分为两种: 单精度浮点数(float)、 双精度浮点数(double), double型变量所表示的浮点数比 float 型变量更精确。
- float(单精度浮点型)
计算公式(转换为10进制数):符号位 尾数*2^(阶码-127)
计算公式(10进制数转换):
1)填入符号位
2)转换为2进制数
3)移位(位数+127得到阶码)
4)填入尾数
-
double(双精度浮点型)
-
科学计数法表示浮点数
1.75E5 或 1.75 e5
1.75E5就是1.75乘以10的5次方(100000), 175000.0 -
注意:
float类型变量赋值时可以不在数后加f。
3.两种不同的常量
3.1 字面常量
例如int,long,longlong类型的常量分别为1,10L,100LL;char 类型的常量为’a’等的常量称为字面常量。
3.2 符号常量
1)
#define宏定义的符号常量
#define MAX_AGE 35
在编译的预处理阶段,直接把MAX_AGE替换为35
2)
const修饰的符号常量
const int maxAge = 35;
maxAge = 30; //错误!编译失败
注意:const修饰的符号常量,又叫“只读变量”。
本质上,是一个变量,只是被const限制。
4.练习
4.1 数学计算
需求:输入圆的半径,计算圆的面积和周长(PI取3.1415926,计算结果保留两位小数)
#include <iostream>
#include <Windows.h>
#define PI 3.1415326
using namespace std;
int main() {
//计算圆的周长和面积并输出(要求保留两位小数)
float r;
float area;
float circ;
cout << "please enter the radius of circle:";
cin >> r;
cout.precision(2);
cout.flags(cout.fixed);
cout << "圆的周长是:" << 2 * PI * r << endl;
cout << "圆的面积是:" << PI * r * r << endl;
system("pause");
return 0;
}
4.2 无符号数
无符号数不要保存负数(实际上存的是负数的补码)