2023-12-20 C++

C++是C语言的一个超集,这意味着几乎所有合法的C程序都是合法的C++程序。C++继承了C语言的大部分语法和结构,并且在此基础上添加了许多新的特性,比如面向对象编程、模板、异常处理等。

C++与C语言之间的相似性要比C#与C语言之间的相似性更高。实际上,C++最初就是作为C语言的一个增强版本而开发的,因此两者在语法、结构和一些基本概念上非常相似。

相比之下,C#虽然也受到C语言的影响,但在语法和特性上与C语言有更大的差异。C#更加注重面向对象编程,引入了一些新的概念和特性,比如属性、委托、事件等,这些特性在C语言和C++中并不直接存在。

因此,对于熟悉C语言的开发者来说,学习C++可能会更容易一些,因为它们之间的相似性更高。但是,无论是C++还是C#,都有其各自的优势和适用场景,取决于具体的应用需求和开发目标。

❄️DEV C++

  • Dev C++严格遵守 C++ 的标准

  • 中文字乱码
    区域设置—>管理语言设置—>勾选beta

  • 中文字体与背景色一致,导致显示除非选中文字否则显示不出
    在这里插入图片描述
    solution:取消勾选 <ID 27071…>
    在这里插入图片描述

  • Dev C++编译结果不显示
    关于DEVC++编译没错,但运行不出来的可能原因,安装的时候(第二次选语言)选了中文,可能是。

  • 改Dev C++背景色
    在这里插入图片描述

在这里插入图片描述

❄️CODE

  • C++ 不以行末作为结束符的标识,可以在一行上放置多个语句。
  • 把常量定义为大写字母形式,是一个很好的编程实践。

❄️第一个代码

#include <iostream>

int main(){
	std::cout<<"hello world\n"; //输出hello world
	return 0;
}
#include <iostream>
using namespace std;

int main(){
	cout<<"hello world\n"; //输出hello world
	return 0;
}

❄️输入和输出

#include <iostream>
//定义了 cin、cout、cerr 和 clog 对象,
//分别对应标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。

使用 cerr 流来显示错误消息,其他的日志消息则使用 clog 流来输出。

#include <iostream>
using namespace std;

int main(){
	char input[10];
	char ex[]="test error";
	char log[]="test log";
	
	cerr<<"Error: "<<ex<<endl;
	clog<<"Log: "<<log<<endl;
	cout<<"please input a word: ";
	cin>>input;
	cout<<"the word is "<<input<<endl;                    
	return 0; 
}

在这里插入图片描述

❄️变量和运算

#include <iostream>
#include <limits>

#define PI 3.14 //宏定义常量

using namespace std;

int main(){
	cout<<2023<<endl;
	cout<<2023<<"\n";
	cout<<PI<<endl;
	cout<<'a'<<endl;
	cout<<"hello world"<<endl;
	cout<<"A"<<endl;
	cout<<"\101"<<endl; /*A*/
	cout<<"\x41"<<endl; /*A*/
	cout<<"\052"<<endl;
	cout<<"a";cout<<"b"<<endl; /*ab*/
	
	cout<<"type\t\t"<<"-----------size-----------"<<endl;
	cout<<"bool\t\t"<<"Byte = "<<sizeof(bool);
	cout<<" min = "<< (numeric_limits<bool>::min)();
	cout<<" max = "<< (numeric_limits<bool>::max)()<<endl;
	
	cout<<"char\t\t"<<"Byte = "<<sizeof(char);
	cout<<" min = "<< (numeric_limits<char>::min)();
	cout<<" max = "<< (numeric_limits<char>::max)()<<endl;
	
	cout<<"signed char\t"<<"Byte = "<<sizeof(signed char);
	cout<<" min = "<< (numeric_limits<signed char>::min)();
	cout<<" max = "<< (numeric_limits<signed char>::max)()<<endl;
	
	cout<<"unsigned char\t"<<"Byte = "<<sizeof(unsigned char);
	cout<<" min = "<< (numeric_limits<unsigned char>::min)();
	cout<<" max = "<< (numeric_limits<unsigned char>::max)()<<endl;
	
	cout<<"short\t\t"<<"Byte = "<<sizeof(short);
	cout<<" min = "<< (numeric_limits<short>::min)();
	cout<<" max = "<< (numeric_limits<short>::max)()<<endl;
	
	cout<<"int\t\t"<<"Byte = "<<sizeof(int);
	cout<<" min = "<< (numeric_limits<int>::min)();
	cout<<" max = "<< (numeric_limits<int>::max)()<<endl;
	
	cout<<"long\t\t"<<"Byte = "<<sizeof(long)<<endl;
	cout<<"float\t\t"<<"Byte = "<<sizeof(float)<<endl;
	cout<<"double\t\t"<<"Byte = "<<sizeof(double)<<endl;
	cout<<"long double\t"<<"Byte = "<<sizeof(long double)<<endl;
	cout<<"string\t\t"<<"Byte = "<<sizeof(string)<<endl;
	
	string greeting="hello,world\n";
	cout<<greeting;
	
	const int X=2;
	const int Y=2;
	int area;
	area=X*Y;
	cout<<area;
	return 0;
}

在这里插入图片描述


#include <iostream>
using namespace std;

int main(){
	//算术运算 加减乘除取余自增自减
	int a=3;
	int b=2;
	cout<<"a+b="<<a+b<<endl;
	cout<<"a-b="<<a-b<<endl;
	cout<<"a*b="<<a*b<<endl;
	cout<<"a/b="<<a/b<<endl;
	cout<<"a%b="<<a%b<<endl;
	cout<<"a++="<<a++<<endl;
	cout<<"b--="<<b--<<endl;
	//关系运算 == != > < >= <=
	if(a==b){cout<<"a=b"<<endl;}
	else{
		cout<<"a!=b"<<endl;
	}
	if(a<b){cout<<"a<b"<<endl;}
	else{
		cout<<"a>=b"<<endl;
	}
	if(a>=b){cout<<"a>=b"<<endl;}
	else{
		cout<<"a<b"<<endl;
	} 
	//逻辑运算 与或非 && || !
	//按位与 按位或 异或 取反& | ^ ~
	//左移 右移 << >>
	if(a&&b){cout<<"true"<<endl;}
	if(a||b){cout<<"true"<<endl;}
	//赋值运算 = += -+ *= /= %= <<= >>= &= ^= |=
	int j=2;cout<<j<<endl;
	j<<=2; cout<<j<<endl;
	j>>=2; cout<<j<<endl;
	j&=2;  cout<<j<<endl;
	j^=2;  cout<<j<<endl;
	j|=2;  cout<<j<<endl;
	j+=2;  cout<<j<<endl;
	j-=2;  cout<<j<<endl;
	j*=2;  cout<<j<<endl;
	j/=2;  cout<<j<<endl;
	j%=2;  cout<<j<<endl;
	//其他运算 sizeof() 条件运算符 三目  ? : 逗号运算符 , 
	//成员运算符 . -> 强制转换 cast 指针 & *
}

#include <iostream>
#include <cmath>
using namespace std;

int main(){
	short s=10;
	int i=-1000;
	long l=100000;
	float f=230.47;
	double d=200.374;
	
	cout<<"sin(d)="<<sin(d)<<endl;
	cout<<"abs(i)="<<abs(i)<<endl;
	cout<<"floor(d)="<<floor(d)<<endl;
	cout<<"sqrt(f)="<<sqrt(f)<<endl;
	cout<<"pow(d,2)="<<pow(d,2)<<endl;
	
	return 0;
}

在这里插入图片描述


随机数生成

#include <iostream>
#include <ctime>
//#include <cstdlib>
using namespace std;

int main(){
	int i,j;
	srand((unsigned)time(NULL));
	for(i=0;i<10;i++){
		j=rand();
		cout<<"随机数 "<<j<<endl;
	}
	return 0;
}

在这里插入图片描述

❄️日期和时间

在这里插入图片描述

#include <iostream>
#include <ctime>
using namespace std;

int main(){
	time_t now=time(0);
	cout<<"本地日期和时间 "<<ctime(&now)<<endl;
	
	tm *lctm=localtime(&now);
	cout<<"本地日期和时间 "<<asctime(lctm)<<endl;
	
	/*tm *gmtm=gmtime(&now);
	cout<<"UTC 日期和时间 "<<asctime(gmtm)<<endl;//UTC GMT 格林尼治标准时间*/
	
	cout<<"年 "<<1900+lctm->tm_year<<endl;
	cout<<"月 "<<1+lctm->tm_mon<<endl;
	cout<<"日 "<<lctm->tm_mday<<endl;
	cout<<"时间 "<<lctm->tm_hour<<":";
	cout<<lctm->tm_min<<":";
	cout<<lctm->tm_sec<<endl;
}

在这里插入图片描述

❄️函数的调用

#include <iostream>
using namespace std;

//函数声明
int max(int num1,int num2,int num3); //选最大的数
int sum(int num1,int num2,int num3); //求和

int main(){
	int a=200;
	int b=300;
	int c=100;
	int larger;int s;
	larger=max(a,b,c);
	s=sum(a,b,c);
	cout<<"max value is "<<larger<<endl;
	cout<<"sum is "<<s<<endl;
	return 0;
}

int max(int num1,int num2,int num3){
	int result;
	if(num1>=num2 && num1>=num3) result=num1;
	else if(num2>=num1 && num2>=num3) result=num2;
	else result=num3;
	return result;
}

int sum(int num1,int num2,int num3){
	int sum;
	sum=num1+num2+num3;
	return sum;
}

方法二:

#include <iostream>
using namespace std;

int main(){
	// 三目运算符比较大小
	int a=3;int b=2;int c=5;
	cout<<"max value is "<< ((a>b)?((a>c)?a:c):((b>c)?b:c)) <<endl;
	
	// 定义一个lambda函数求和
    auto sum = [](int a, int b,int c) -> int {
        return a + b + c;
    };
    // 调用lambda函数
    int s = sum(3, 4, 5);
    cout<<"sum is "<<s<<endl;
    
    return 0;
}

❄️字符串操作

#include <iostream>
#include <string>
using namespace std;
int main(){
	string str="12233";
	string str1="dshg";
	string str2;
	int len;
	
	//copy
	str2=str;
	cout<<"str2="<<str2<<endl;
	
	//拼接
	cout<<"str+str1="<<str+str1<<endl;
	
	//len
	cout<<"str2 length="<<str2.size()<<endl;
	
	return 0;
}

在这里插入图片描述


#include <iostream>
#include <cstring>
using namespace std;

int main(){
	char str[13]="test";
	char str1[9]="11a0";
	char str2[13]; 
	//int len;
	
	//copy
	strcpy(str2,str);
	cout<<"strcpy(str2,str1)="<<str2<<endl;
	
	//字符拼接 strcat
	cout<<"strcat(str1,str)="<<strcat(str1,str)<<endl;
	
	//字符长度
	//最后一个字符是\0 即null
	//C++ 中有大量的函数用来操作以 null 结尾的字符串
	cout<<"str2 length="<<strlen(strcat(str,str1))<<endl;
	
	//字符比较
	//str1=str2 return_value=0 ;< <0; > >0 
	cout<<"strcmp(str1,str2)="<<strcmp(str1,str2)<<endl;
	
	return 0;
}

在这里插入图片描述

❄️ERROR

❄️[Error] ‘::main’ must return ‘int’

Dev C++报错 hello_world.cpp [Error] ‘::main’ must return ‘int’

Dev C++严格的遵守 C++ 的标准

这个错误是因为在C++中,main函数必须返回一个整数类型的值。通常情况下,main函数应该是这样的:

int main() {
    // 你的代码
    return 0;
}

如果你的main函数没有返回任何值,或者返回值的类型不是int,就会导致这个错误。请确保你的main函数的返回类型是int,并且在函数的结尾处使用return 0;语句来返回一个整数值。

另外,如果你的main函数接受命令行参数,可以使用下面的形式:

int main(int argc, char* argv[]) {
    // 你的代码
    return 0;
}

确保你的main函数符合这些要求,就可以解决这个错误。

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值