c++知识点学习总结(持续更新)

这篇博客总结了C++编程中的一些常见问题,包括中文乱码的处理、数字与字符串转换、bool数组初始化以及printf函数的使用方法。特别强调了在输出字符串时需要使用c_str()函数将string对象转换为C风格字符串。此外,还提到了构造函数的注意事项,如未定义空参构造函数会导致无法创建对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要使用Java语言,但是个程序员就难免跟c++/c打交道,一写代码就发现c++的坑好多好多啊,所以发现一点记录一点吧,避免时间长不接触之后又要掉一遍原来掉过的坑。

一、中文乱码问题

在中文输出的函数前添加代码(仅作用于当前文件)

system("chcp 65001"); 

传送门mingw控制台中文乱码

二、数字与字符串之间的转换

#include <sstream>
using std::string;
double price = 10;
int seatNo = 11;
std::stringstream ss;
ss << price;
ss >> Price;
ss.clear();     //清除数据
ss.str("");
ss << seatNo;
ss >> SeatNo;

三、bool数组初始化

零初始化器{0}

bool* booked = new bool[MAXNum]{false};  //数组全部初始化为0
bool *bo = new bool[10]{true};			 //数组只有第一个元素为1,其余为0 
std::fill_n(bo, 5, true);				 //前n(n=5)个元素为1,后面的为0

原文链接

四、printf()函数

1、输出字符串

如果使用printf()函数输出字符串,由于printf()是c++为了兼容c的,而在C中没有string类型,故必须通过string类对象的成员函数c_str()把string对象转换成C中的字符串样式。使用.c_str()函数,c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
我们可以看到printf()函数的参数类型要求为const char *:printf()函数参数要求
而c_str()函数的返回值即为const char *:
c_str()函数

使用示例:

string s = "abc";
printf("%s",s.c_str());

五、构造函数

1、若未给类定义空参的构造函数,会出现无法新建对象的情况。
2、似乎只有指针对象才可以被赋值成new constructor();而普通对象只能在声明后利用setter逐步给变量赋值。根据报错提示,应该new方法返回的是指针变量。

Line *line = new Line(id, a, b, time, 400);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值