C++菜鸟日记2

关于getline()函数,在char和string输入的区别

参考博客

1.在char中的使用:

2.在string中的使用:

关于char字符数组拼接和string字符串拼接方法

参考博客
字符串拼接方法:

1.直接用 + 号

2.利用append()函数

字符数组的拼接方法

1.使用strcpy()和strcat()函数;

cpp 复制代码
const int Size;
int main()
{
cout << "字符数组的拼接方法:" << endl;

char FirstName[Size], LastName[Size];
char FullName[Size*2];
cout << "Enter the FirstName:";
cin.getline(FirstName, Size);
cout << "Enter the LastName:";
cin.getline(LastName, Size);
strcpy_s(FullName, FirstName);
strcat_s(FullName, ",");
strcat_s(FullName, LastName);
cout << "Here is the Information in a sample string:" << FullName << endl;
cout << FullName << endl;
}

在代码编写阶段容易存在的问题:

1.一般char[n]里面的n必须为常量要用const进行修饰,不然会报错。

2.容易提示函数不安全问题;参考博客

关于结构体创建,申明结构体变量,和初始化结构体变量问题

1.结构体初始化方式:

创建结构体,定义结构变量,初始化同时进行;

先创建结构体,再同时定义结构变量和初始化结构体;

先创建结构体,在定义结构变量,后对结构变量成员进行赋值;
参考博客1
参考博客2

2.书写结构体注意的地方:在创建结构体时, struct 结构类型名 {;;;};要用";"号间隔,在初始化结构体变量时 变量名={,,,}; 要用","间隔。

关于cin.getline()面向行输入注意的事项

在做测试题时,当遇到数字和面向行输入同时要出现时,若要先输入数字,则一定要在后面加上cin.get()语句,不然后面的getline()输入就会出现问题。但是当getline()先于数字输入可以正常输入显示。

cpp 复制代码
#include<iostream>
#include<cstring>
using namespace std;


struct Pizza
{
	char Company[29];
	float Diameter;
	float weight;
};
int main()
{
	cout << "第八题:--------------" << endl;
	Pizza* PPizza = new Pizza;
	cout << "Please enter the diameter of Pizza:";
	cin >> PPizza->Diameter;
	cin.get();//面向行输入和数字输入混合时,要在数字输入后面加上cin.get()语句
	cout << "Please enter the Company of the Pizza:";
	cin.getline(PPizza->Company,40);
	//cin >> PPizza->Company;
	cout << "Please enter the Weight of the Pizza:";
	cin >> PPizza->weight;
	//cout << "Please enter the diameter of Pizza:";
	//cin >> PPizza->Diameter;

	cout << "Company:" << (*PPizza).Company << "\n" << "Diameter" << (*PPizza).Diameter << "\n" << "Weight:" << (*PPizza).weight << endl;
	delete PPizza;
}
相关推荐
感哥19 分钟前
C++ std::string
c++
SimonKing1 小时前
Archery:开源、一站式的数据库 SQL 审核与运维平台
java·后端·程序员
皮皮林55112 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
卡尔特斯16 小时前
Android Kotlin 项目代理配置【详细步骤(可选)】
android·java·kotlin
白鲸开源16 小时前
Ubuntu 22 下 DolphinScheduler 3.x 伪集群部署实录
java·ubuntu·开源
ytadpole16 小时前
Java 25 新特性 更简洁、更高效、更现代
java·后端
感哥17 小时前
C++ 面向对象
c++
纪莫17 小时前
A公司一面:类加载的过程是怎么样的? 双亲委派的优点和缺点? 产生fullGC的情况有哪些? spring的动态代理有哪些?区别是什么? 如何排查CPU使用率过高?
java·java面试⑧股
JavaGuide18 小时前
JDK 25(长期支持版) 发布,新特性解读!
java·后端
用户37215742613518 小时前
Java 轻松批量替换 Word 文档文字内容
java