第二节 C++ 数据类型

news2024/12/25 14:40:49

文章目录

  • 1. 概述
    • 1.1 数据类型的重要作用 (了解)
  • 2. 数据类型
    • 2.1 什么是进制 ?
      • 2.1.1 存储单位
    • 2.2 整数类型
      • 2.2.1 整数类型使用
      • 2.2.2 超出范围
      • 2.2.3 关键字 sizeof
    • 2.3 实型(浮点型)
      • 2.3.1 setprecision()函数
      • 2.3.2 科学计数 (了解即可)
    • 2.4 字符型
      • 2.4.1 字符型定义
      • 2.4.2 ASCII (了解即可)
    • 2.5 转义字符(理解即可)
    • 2.6 字符串类型
      • 2.6.1 字符串定义方式
    • 2.7 布尔类型
      • 2.7.1 布尔类型定义
    • 2.8 数据类型转换(重要)
      • 2.8.1 隐式类型转换
      • 2.8.2 强制类型转换
    • 2.9 综合练习
      • 2.9.1 互换变量
      • 2.9.2 计算阴影部分
      • 2.9.3 ASCII编码转换

1. 概述

  1. 在C++中,数据类型指定了变量或表达式可以存储的数据的类型和范围。
    • 规定在创建一个常亮或者变量时,必须指定一个数据类型,否则 内存无法给变量分配内存 。
    • 它定义了 变量在内存中所占空间的大小
  2. 数据类型决定了,如何解释内存中的数据,以及可以对数据执行的操作。
    • 根据类型进行操作,例如:字符串不能和整数进行运算。

1.1 数据类型的重要作用 (了解)

  1. 数据类型的存在是为了确保在程序中正确地存储和处理数据。下面是一些数据类型的重要作用:

    • 内存管理: 数据类型确定了变量在内存中所占用的空间大小。 这样,编译器可以为每个变量分配适当的内存空间。使用正确的数据类型,可以避免内存浪费和溢出的问题。

    • 运算操作: 不同的数据类型支持不同的操作。例如,可以对整数类型进行加减乘除运算而字符类型只支持字符比较、连接等操作。 数据类型确定了程序可以对变量进行的操作集。

    • 代码可读性和维护性: 数据类型提供了对变量类型的描述,使得代码更易读和易于维护。通过阅读代码,开发人员可以了解变量的含义和用途,提高代码的可理解性和可维护性。

  2. 总结:数据类型的存在是为了确保数据在程序中正确、有效、高效地存储和操作。

    • 通过适当选择和使用数据类型,可以提高程序的性能、可靠性和可维护性。

2. 数据类型

2.1 什么是进制 ?

  1. 进制是一种表示数字的方式,它使用一定的符号系统来表示数值中的各个位数。
  2. 在日常生活中,我们通常使用的是十进制(即以10为基数的系统), 但在计算机科学和数学领域中,还存在其他进制系统。
    • 例如: 在二进制中,基数为2,因为我们只使用 两个数字(0和1)来表示数值。
  3. 在C++中,常见的进制包括十进制(base 10)、二进制(base 2)、八进制(base 8)和十六进制(base 16)。
    • 十进制: 使用十个数字(0-9)来表示数值。例如,整数10表示十进制数。
    • 二进制: 使用两个数字(0和1)表示数值。二进制数值通常以0b或0B前缀开头。例如,整数0b1010表示二进制数。
    • 八进制: 使用八个数字(0-7)表示数值。八进制数值通常以0前缀开头。例如,整数012表示八进制数。
    • 十六进制: 使用十六个数字(0-9和A-F或a-f)表示数值。十六进制数值通常以0x或0X前缀开头。例如,整数0xA表示十六进制数。

2.1.1 存储单位

  1. 计算机中所有数据都是以 二进制进行存储 的,

    • bit(比特/位): 一位 二进制,用0和1来表示。
    • byte(字节): 8 位二进制构成一个字节 , 即,1byte=8bit。
      在这里插入图片描述
  2. 在C++中定义变量前一定要声明数据类型, 每种数据类型都有自己的占的字节。

    • 不同的数据类型在C++中有不同的长度。(以字节为单位,具体长度可能因编译器和系统而有所差异):

2.2 整数类型

  1. 整型变量,表示 整数类型 的数据。
  2. C++中能表示整数类型的变量有以下几种
    • 区别: 在于所 占内存空间不同
数据类型占用空间取值范围
short(短整型)2字节-2^15 ~ 2^15-1
int(整型)4字节-2^31 ~ 2^31-1
long(长整型)8字节(64位),4字节(32位)-2^31 ~ 2^31-1
long long(长长整型)8字节-2^63 ~ 2^63-1

2.2.1 整数类型使用

  1. 如何整数类型的使用。

    #include <iostream> 
    using namespace std;
    
    int  main(){
    	//1.整数类型使用 short int long  long long
    	short num_1 = 4; 
    	//定义int类型 
    	int  num_2 =4;
    	//定义长整型 
    	long  num_3 =4;
    	//定义长长整型 
    	long long  num_4 =4;
    	 
    	cout << num_1 <<endl;  
    	cout << num_2 <<endl;  
    	cout << num_3 <<endl;  
    	cout << num_4 <<endl;  
    	
    	return 0;
    }
    

2.2.2 超出范围

  1. 思考;如果超出范围会怎么样 ?
    • 例如 ; short 超出范围会怎样?
    #include <iostream>
    using namespace std;
    
    int main(){
    	//整数类型 范围 -2**15 ~2**15-1
    	//  -32768 ~32767  
    	short a =  32768 ;	
    	short a1 =  -32769 ;	
    	
    	//结果输出了什么? 发生了什么变化? 
    	cout<< a << endl;  //-32768
    	cout<< a1 << endl; //32767
    	
    	return 0; 
    } 
    

2.2.3 关键字 sizeof

  1. 数据类型的大小都需要记住么?并不是 要学会使用运算符sizeof。
  2. 统计数据类型占的内存大小 。
    • sizeof(数据类型 / 变量名)
    //sizeof()就是统计数据类型占的内存大小
    #include <iostream>
    using namespace std;
    
    int  main(){
    	short a1 = 10;
    	int a2 = 10;
    	long a3 = 10;
    	long long a4 = 10;
    	
    	cout << sizeof(a1) << endl; //2
    	cout << sizeof(a2) << endl; //4
    	cout << sizeof(a3) << endl; //4
    	cout << sizeof(a4) << endl; //8
    	return 0;
    } 
    

2.3 实型(浮点型)

  1. 作用:表示小数,又叫做 小数类型, 有 两种 表示方式:
    • float 单精度
    • double 双精度
数据类型占用空间有效数字范围
float4字节有效 7位
double8字节有效位数15~16
  1. 如何使用

    • 单精度浮点型,值后面需要加 f
    #include <iostream>
    using namespace std; 
    
    int main(){
    	//实数类型 float double 
    	float f = 3.1415926f; 
    	double d = 3.1415926 ;
    	cout<< f << endl; //默认显示6位  3.14159
    	cout<< d << endl; //3.14159
    	return 0; 
    } 
    

2.3.1 setprecision()函数

  1. 查看保留小数位数的方法。

    • 注意;需要头文件 #include <iomanip>
    #include <iostream>
    #include <iomanip> //包含setprecision()文件 
    using namespace std;
    
    int main(){
    	// cout<<setprecision(4)<<endl; //也可以在开始时设置。
    	//1.查看浮点型占用大小,关键字sizeof 
    	float f =3.141592653f; 
    	double d = 3.141592653;
    	
    	//查看大小
    	cout <<sizeof(f)<<endl;  //4
    	cout <<sizeof(d)<<endl;  //8
    	
    	//设置输出浮点数的精度. 
    	cout <<setprecision(8) << f << endl; 
    	cout <<setprecision(8) << d << endl; 
    	return 0; 
    } 
     
    

2.3.2 科学计数 (了解即可)

  1. 浮点型除了用小数表示,还有用 科学计数法表示
    • 通常e后面如果是正数, 就是10基础;
    • 如果e后面是负数,就是 0.1为基数;
    #include <iostream>
    using namespace std;
    int main(){
    	//科学计数法2种表示方式
    	//1. 3e3  1.2e4 
    	double d = 3e3 ;// 3*10**3
    	double d2 = 1.2e4;  //1.2 *10**4
    	cout << d << endl; 
    	cout << d2 << endl;  
    	
    	//2.  3e-3   1.2e-4
    	double d3 =3e-3; //3*0.1**3
    	double d4 =1.2e-4; // 1.2*0.1**4
    	
    	cout <<d3<<endl; //0.003
    	cout <<d4<<endl; //0.00012
    	
    	return 0; 
    } 
    

2.4 字符型

2.4.1 字符型定义

  1. 字符型变量用于 显示单个字符,语法格式如下:

    • 注意,要求 使用单引号' '围起来的单个字符。
    • char c = 'a'; 只能是单引号
    #include <iostream>
    using namespace std;
    
    int main(){
    	
    	//字符的定义方式
    	char a ='a'; 
    	cout<<a<<endl; 
    	cout<<sizeof(a)<<endl; // 1个字节 
    	
    	//2. 错误示范
    	// char a ="a"; //必须使用单引号 
    	// char a ='ab'; //只能是单个字符 
    	// char a ='你';  //存不了一个汉字
    	
    	return 0; 
    } 
    
  2. 取值范围

    数据类型占用空间最多表示的符号数取值范围
    char1字节256个不同值 (ASCII)-128 ~127 的整数值

2.4.2 ASCII (了解即可)

  1. ASCII是一种字符编码标准,它定义了将字符映射到整数值的规则。

    • 在C++中,每个字符都有一个对应的ASCII码值。
  2. ASCII(美国标准信息交换码)是一种用于计算机文本编码的字符集。它利用7位二进制数字(0到127)来 表示128个不同的字符。

    • 这些字符包括 大写和小写字母、数字、标点符号、特殊控制字符等。
    • 注意:0~31犹豫特殊是不输出的。 需要从32开始。

    在这里插入图片描述

  3. 在C++中,我们可以使用char类型来表示ASCII字符。 char类型是一个字节大小的整数类型,可以存储ASCII码值。

    • 我们可以使用单引号将字符字面值括起来, 如 ‘A’ 表示大写字母A的ASCII码值。
    • 我们还可以使用整数赋值给char类型变量,其中整数值应处于ASCII码值的范围内。
    #include<iostream> 
    using namespace std;
    int main(){
    	
    	char a ='a';
    	char a1 = 97;
    	//为什输出都是  a ? ASCII 字符码表对应 
    	cout << a << endl; 
    	cout << a1 << endl; 
    	
    	int i = a+a1; //可以进行数字运算. 需要转换int类型. 
    	cout << i ; // 194 
    	
    	//查看所有的字符串 匹配ascii表 
    	for (int i=32 ; i< 127;i++){
    		
    		cout << "i对应的字符 "<<i <<" "<<char(i) << endl; 
    	} 
    	return 0; 
    } 
    

2.5 转义字符(理解即可)

  1. 转义字符是一种在编程语言中使用的特殊字符序列,用来表示一些特殊的字符或者字符组合。它们被用于告诉编译器或解释器将它们后面的字符当作普通字符处理,而不是它们通常具有的特殊含义。

    • 使用转义字符 可以在 字符串和字符字面值中插入特殊字符或字符序列。
    	//还有很多, 但是掌握这些就可以。
    	 \n:换行符,将当前位置移到下一行的开头。
    	 \t:制表符,用于在文本中插入水平制表符。
    	 \\:反斜杠字符,用于插入一个反斜杠字符。
    	 \':单引号字符,用于插入一个单引号字符。
    	 \":双引号字符,用于插入一个双引号字符。
    	 \b:退格符,用于删除前一个字符。
    
    • 例如,在C++中,你可以使用\n来表示换行符,或者使用\t来表示制表符。
    #include <iostream>
    using namespace std;
    
    int main(){
    	/*1.  \n 换行
    		  \t 制表符
    		  \' 插入单引号 
    		  \" 插入双引号 
    		  \b 退格符 
    	*/
    	 
    	cout << "H\be\"llo \n C++, Hel\tlo Wor\'ld!"<<endl; 
    	cout << "Hello,World"<< endl; 
    	
    	return 0;
    } 
    

2.6 字符串类型

2.6.1 字符串定义方式

  1. 作用就是表示一串字符串,定义方式两种;
    • 字符数组 形式 char str[] = " 变量值 "
    • 字符串 定义;string s = "变量值";
  2. 注意的是在变量值赋值时,一定要使用双引号" "
    • 字符串定义 需要使用,头文件 #include <string>
    #include<iostream>   //头文件扩展 
    using namespace std; //命名空间 ,如果不写就需要调用 
    #include <string>  //导入头文件string 
    int main(){
    	//需要执行方法体
    	cout<<"Hello C++"<<endl;  //endl相当于回车 
    	cout<< "Hello World"; 
    	//遇见程序结束返回值. 
    	
    	string s ="hello";
    	cout << s <<endl; 
    	return 0; 
    }
    
    

2.7 布尔类型

2.7.1 布尔类型定义

  1. 布尔类型就是,专门表示真假的类型。

    数据类型占用空间取值
    bool1字节true(1) 和 false(0)
  2. 布尔类型有两个值,除了0代表假,其他都为真。

    • true 真。
    • false 假。
#include <iostream>
using namespace std;

int main(){
	//1.创建小数
	 bool  b = true;
	 bool  b1 = false;
	 // true 本质 是 1 false 本质为 0 
	 cout << b <<endl; // 1
	 cout << b1 <<endl; // 0
	 
	 //2.查看占用空间  1个字节 
	 cout << sizeof(b)<<endl; 
	 cout << sizeof(b1)<<endl; 
	 
	 cout << "-------------------"<< endl; 
	 //3. 扩展 除了0代表假,其他都是真 
	 bool num_1 = 0;
	 bool num_2 = 1.5;
	 bool num_3 = 3.8;
	 bool num_4 = -3.8;
	 
	 cout << num_1 <<endl; // 0
	 cout << num_2 <<endl; //1
	 cout << num_3 <<endl; //1
	 cout << num_4 <<endl; //1
	return 0;
} 

2.8 数据类型转换(重要)

  1. 定义变量时,需要根据需求来选择合适的数据进行存储,但是在某些情况下,需要将一种数据类型转换为另一种数据类型使用。
    • 这时就需要数据类型转换。
      在这里插入图片描述

2.8.1 隐式类型转换

  1. 隐式转换是指,在一些情况下,编译器会自动将一种类型的值转换为另一种类型的值,而无需显式地指定转换操作。

    • 需要按照从上往下的规则进行转换。
      在这里插入图片描述
    #include <iostream>
    using namespace std;
    
    int main(){
    	/*
    		1.隐式类型转换
    		//char --> int -->long-->float-->double 
    	*/
    	//1.1 char --> int 
    	char c ='a'; 
    	int i = 67 ;
    	//表达式有int时 就会char类型就会自动提升为 int类型 
    	int res = c + i; //a就自动转换为 97 + i 就是 67 
    	cout << res << endl;  //164
    	
    	//1.2 int -->double 
    	int  i_1 = 2;
    	double d = 9.0;
    	double  res_1 =  d / i_1;
    	cout << res_1 << endl; //4.5
    	
    	//1.3 int 和 int 
    	int i_2 = 5 ;
    	cout << i_2/i_1<< endl; //2 因为都是int 不保留小数 
    	return 0 ;
    } 
     
    

2.8.2 强制类型转换

  1. 隐式类型是小转大方向,但是如果要 从大类型转换到小类型 呢?

    • 就需要 强制类型转换。
  2. 强制类型换行有两种书写方式

    • (数据类型)变量。
    • 数据类型(变量或者表达式)。
    #include <iostream>
    using namespace std;
    
    int main(){
    	/*1.显示类型转换, 从大类型转换为小类型
    		就是强制转换. 
    	*/
    	//float --> int
    	float f = 3.14;
    	cout <<"float-->int: " <<int(f+1) <<endl; //3
    	
    	//int --> char 
    	int a = 65; //0~127 从33开始.. 
    	cout << "int --> char "<<char(a) << endl; //A
    	
    } 
    

2.9 综合练习

2.9.1 互换变量

  1. 需求在,控制台输入两个值,分别是 a,b ,输出的时候要求 输出b,a。

  2. 代码如下;

    #include <iostream>
    using namespace std;
    
    /*
    	1. 需求,在控制台输入2个数 a ,b 
    			输出需要编程  b , a  
    		交换变量. 
    */
    int main(){
    	//1.控制台输入
    	cout << "请输入 a: " << endl; 
    	cout << "请输入 b: " << endl; 
    	//1.1 定义a 的值
    	int a ; //先声明 a 
    	int b ; //先声明 b 
    	cin >>  a ; //不需要添加>>endl(输出流换行);
    	cin >>  b ;
    	
    	//交换变量
    	int c ;
    	c = a;
    	a = b ;
    	b = c; 
    	
    	cout << "a的值是: "<< a << endl;  //使用 
    	cout << "b的值是: "<< b << endl;  //使用 
    	return 0; 
    } 
    

2.9.2 计算阴影部分

  1. 输入一个正方形边长为 r , 计算阴影部分的面积 (如图所示)π的取值为 3.1415,要求结果 保留3位有效数 ,当正方形 边长为 5.5 时求阴影面积。

    • 圆的 面积怎么求 ?
    • 阴影面积如何推导?
      在这里插入图片描述
    #include <iostream>
    using namespace std;
    #include <iomanip>  //导入精度输出头文件 
    /*
    1. 阴影部分的面积;
    		正方形面积 - 4分之一圆的面积. 
    */
    int main(){
    	
    	//1.正方形面积  r^2 ,圆的面积 π*r^2  
    	const double pai = 3.1415 ; //π 
    	double r = 5.5; //既是圆的半径,又是长方形的边长 
    	double s; //阴影部分面积
    	
    	s = r*r - pai*r*r/4;
    	//保留2位小数  注意需要导入头文件 
    	cout << "阴影部分面积s: " << setprecision(3)<< s << endl;  
    	
    	return 0 ; 
    } 
    

2.9.3 ASCII编码转换

  1. 要求是输入一个字符请你输出这个字符对应的ASCII的编码是多少?

    • 输入一个字符 a , 输出为 97。
    • 输入一个字符 A ,输出为 65。
    #include <iostream>
    using namespace std;
    
    int main(){
    	
    	cout<< "请输入字符: "<< endl;
    	char c ;
    	cin >> c; 
    	
    	//转出时对应的应该是10进制 int类型
    	cout << int(c) <<endl; 
    	
    	return 0; 
    } 
    
  2. 自己思考,假如需求调转过来。

    • 输入一个数字 97 , 输出为 a。
    • 输入一个数字 65,输出为 A。
    #include <iostream> 
    using namespace std;
    
    int main(){
    	
    	//1.输入数字类型  int  
    	cout << "请输入一个数字: "<< endl;
    	int a ;
    	cin >> a;
    	
    	//2. 转换为char类型
    	cout << char(a)<< endl; 
    	
    	return 0; 
    } 
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/777482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树-用Java托举

再讲完前面几个数据结构后&#xff0c;下面&#xff0c;我们开始对树进行一个讲解分析 树 引言 树是一种重要的数据结构&#xff0c;在计算机科学中有着广泛的应用。树是由节点和边组 成的非线性数据结构&#xff0c;具有层次结构和递归定义的特点。每个节点可以有多个子 节点…

【英杰送书第三期】Spring 解决依赖版本不一致报错 | 文末送书

Yan-英杰的主 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 问题描述 报错信息如下 报错描述 解决方法 总结 【粉丝福利】 【文末送书】 目录&#xff1a; 本书特色&#xff1a; 问题描述 报错信息如下 Description:An attempt…

Docker 命令(二)

查看 docker 版本信息 docker version #查看版本信息docker 信息查看 docker info Client:Context: defaultDebug Mode: falsePlugins:app: Docker App (Docker Inc., v0.9.1-beta3)buildx: Build with BuildKit (Docker Inc., v0.5.1-docker)Server:Containers: 0 …

get请求传入[ ]这类字符 返回400错误解决

问题描述 使用get请求查询&#xff0c;传入特殊字符 []时&#xff0c;接口报错。 分析原因 高版本的tomcat&#xff0c;有个新特性&#xff1a; 严格按照RFC 3986规范进行访问解析&#xff0c;而 RFC3986规范定义了Url中只允许包含英文字母&#xff08;a-zA-Z&#xff09;、数…

【Python】数据分析+数据挖掘——Pandas中文件I/O操作

文章目录 前言1. 读入文本格式数据文件1.1 pd.read_csv实例 1.2 pd.read_table1.3 pd.read_excel实例 1.4 pd.read_sql 2. 保存数据文件2.1 保存数据文件到外部文件中2.2 保存数据文件到数据库中 结束语 前言 在数据分析和数据挖掘中&#xff0c;数据通常以文件的形式存储在磁…

静电消除风机风棒的工作原理

静电消除风机风棒的工作原理静电消除离子风机是一种专门用于消除静电的设备。静电是由于物体表面带有静电荷而引起的现象&#xff0c;容易导致尘埃吸附、静电放电等问题。静电消除离子风机通过释放负离子或正离子来中和空气中的静电荷&#xff0c;从而减少静电问题的发生。 静…

【基于CentOS 7的Rsync服务】

目录 一、概述 二、特性 1.快速 2.安全 3.应用场景 三、数据的同步方式 1.pull 2.push 四、rsync传输模式 1.本地传输 2.远程传输 3.守护进程 五、rsync应用 1.安装 2.监听端口 六、rsync命令 1.格式 1.1 作为远程命令 1.2 作为rsync服务 2.选项 3.举例 …

服务器数据恢复-ESX SERVER无法连接到STORAGE的数据恢复案例

服务器数据恢复环境&#xff1a; 某公司信息管理平台&#xff0c;数台VMware ESX SERVER虚拟机共享一台IBM某型号存储。 服务器故障&#xff1a; VC报告虚拟磁盘丢失&#xff0c;管理员ssh到ESX中执行fdisk -l命令查看磁盘&#xff0c;发现STORAGE已经没有分区表了。重启设备后…

2023-7-20-第二十一式访问者模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

unity预制体打包

unity做好的预制体如果给别的工程使用&#xff0c;如果是单纯的ctrlcv会导致丢失引用&#xff0c;如材质信息等&#xff0c;我们可以将其打包好再导入给别的工程。 如打包这个cube&#xff1a; 点击Export&#xff0c;选择保存位置

【算法基础:搜索与图论】3.2 树与图的dfs和bfs

文章目录 例题846. 树的重心&#xff08;深度优先遍历 / 树形DP&#xff09;⭐⭐⭐⭐⭐&#x1f6b9;&#x1f6b9;&#x1f6b9;&#x1f6b9;&#x1f6b9;&#xff08;重要&#xff01;好题&#xff01;&#xff09;847. 图中点的层次 相关链接 要学会建树、建图的通用方法。…

【C++】C++ 11 新特性

文章目录 &#x1f4d5; ★ 右值引用 ★概念左值引用和右值引用的比较使用场景和意义移动构造左值引用的缺陷 完美转发属性丢失为什么会属性丢失解决方法 &#x1f4d5; 新的类功能默认成员函数default 和 delete 关键字 &#x1f4d5; lambda 表达式问题的提出概念函数对象和 …

nuxt获取地址栏(路由)参数

要获取的路由地址&#xff08;页面顶部地址栏&#xff09;&#xff1a;http://172.31.0.1:5353/judge-manage?id3694089482878918764&name%E6%B5%8B%E8%AF%95&judgeIde9IJWN5usmzbrtNC3zYSRtAcKu-M333h 1、获取域名或ip端口&#xff1a;172.31.0.1:5353 2、获取地址…

JMeter的使用方法

JMeter是开源软件&#xff0c;100%的使用Java语言来进行开发的&#xff0c;支持主流的协议&#xff08;HTTP,HTTPS,WebService,gRPC&#xff09;的API测试和性能测试,是一款非常优秀的测试工具软件。 java 语言编写的程序&#xff0c;程序要运行&#xff0c;对外运行的程序有两…

Windows 2012 R2 编辑ini文本遇到的编码问题

在编辑服务端配置文件时&#xff0c;发现对于ini文本文件&#xff1a; 需注意点一&#xff1a;如果另存为UTF-8保存的实际上格式是UTF-8-BOM编码格式&#xff1b; 但是两种格式是存在差异的&#xff1a; 因此造成在使用C#调用系统DLL读取文件时并未报错&#xff0c;但是当使用…

access数据库注入

access数据库一般是100人以下的小型数据库&#xff0c;后缀是asp的网站 先加一个’看下回显内容&#xff0c;有没有报错 在用and 11 和and 12看下回复内容 and 12 有报错内容&#xff0c;可以确定存在注入点 猜数据库名字&#xff0c;asp的数据库后缀是mdb and exists(select *…

Java将数据集合转换导出为图片

将数据集合导出为图片 Java将数据集合转换导出为根据数据自适应大小的图片&#xff0c;并且保证数据的完整展示 工具类代码 package xxxxxxxxx;import cn.hutool.core.date.DateTime;import javax.imageio.ImageIO; import javax.servlet.ServletException; import javax.se…

linux部署前后端项目

使用nginx部署前端vue项目&#xff1a; nginx的安装就不在过了&#xff0c;直接打包vue项目&#xff1a; npm run build运行完之后会生成一个dist文件夹 将dist文件夹复制到linux文件中&#xff0c;我这里放到了/usr/local/vue目录下&#xff1a; 打开nginx的conf目录下的ngi…

Vue3通透教程【十六】TS编译配置

文章目录 &#x1f31f; 写在前面&#x1f31f; 初始化配置文件⭐ target⭐ module⭐ lib⭐ types/node⭐ include⭐ outDir&#x1f31f; 写在最后 &#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更…

muduo库的log

muduo 库里的日志打印比较复杂&#xff0c;跟标准库 std::cout << 似乎比较像吧&#xff0c;库里自己实现了“流”式的日志打印&#xff0c;今天一起来看一下。 int main(int argc, char* argv[]) {CLogger::setLogLevel(CLogger::INFO);LOG_INFO << "loggin…