個(gè)人簡介
??個(gè)人主頁: 前端雜貨鋪
???♂?學(xué)習(xí)方向: 主攻前端方向,正逐漸往全干發(fā)展
??個(gè)人狀態(tài): 研發(fā)工程師,現(xiàn)效力于中國工業(yè)軟件事業(yè)
??人生格言: 積跬步至千里,積小流成江海
??推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2/3項(xiàng)目實(shí)戰(zhàn) ??Node.js??Three.js??數(shù)據(jù)結(jié)構(gòu)與算法體系教程??個(gè)人推廣:每篇文章最下方都有加入方式,旨在交流學(xué)習(xí)&資源分享,快加入進(jìn)來吧
C++基礎(chǔ)篇
內(nèi)容 | 參考鏈接 |
---|---|
C++入門(一) | C++——簡介、Hello World、變量常量、數(shù)據(jù)類型 |
C++入門(二) | C++——數(shù)組、多維數(shù)組、簡單排序、模板類vector |
前言
大家好,這里是前端雜貨鋪。
上一篇文章,我們初步認(rèn)識了 C++,并學(xué)習(xí)了數(shù)組和模板類。
接下來,繼續(xù)我們 C++ 的學(xué)習(xí)!
一、字符串
下面,進(jìn)行一些對于字符串的相關(guān)操作,內(nèi)容很簡單,直接看代碼和結(jié)果吧!
#include<iostream>
#include<string>
using namespace std;
int main() {
// 默認(rèn)初始化
string s1;
// 拷貝初始化
string s2 = s1;
// 直接初始化
string s3 = "Hello world!";
string s4("hello world!");
string s5(5, 'h');
cout << s5 << endl; // hhhhh
// 訪問字符
cout << "s4[1]=" << s4[1] << endl; // s4[1]=e
// 修改 s4 的第一個(gè)字符為 H
s4[0] = 'H';
cout << "s4=" << s4 << endl; // Hello world!
// 修改 s4 的最后一個(gè)字符為 ?
s4[s4.size() - 1] = '\?';
cout << "s4=" << s4 << endl; // Hello world?
for (int i = 0; i < s4.size(); i++) {
s4[i] = toupper(s4[i]);
}
cout << "轉(zhuǎn)為大寫的s4:" << s4 << endl; // HELLO WORLD?
// 字符串拼接
string str1 = "hello";
string str2("world");
string str3 = str1 + ' ' + str2 + '!'; // hello world!
cout << str3 << endl;
// string str5 = "hello" + "world"; // 錯(cuò)誤
cin.get();
}
為什么
string str5 = "hello" + "world";
為錯(cuò)誤代碼呢??
因?yàn)?"hello"
等價(jià)于 char str[6] = { 'h', 'e', 'l', 'l', 'o', '\0' };
,char類型的數(shù)組是沒有這樣的拼接操作的,所以兩個(gè)字符串字面值不能相加。
二、讀寫文件
C++ 中讀文件使用 ifstream
,寫文件用 ofstream
。
1、文件讀取
我們首先在資源文件夾下創(chuàng)建一個(gè) input.txt
文件,隨意輸入一些內(nèi)容…
接下來,我們分別使用 按照單詞逐個(gè)讀取、逐行讀取、逐個(gè)字符讀取 的方式讀取我們剛剛創(chuàng)建的 input.txt
文件
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
// 文件讀取
ifstream input("input.txt");
// 按照單詞逐個(gè)讀取
string word;
while (input >> word)
{
cout << word << endl;
}
// 逐行讀取
string line;
while (getline(input, line))
{
cout << line << endl;
}
// 逐個(gè)字符讀取
char ch;
while (input.get(ch)) {
cout << ch << endl;
}
cin.get();
}
以上三種方式打印的內(nèi)容分別如下圖(第三種方式太長了,沒有完全截圖,能理解逐個(gè)字符就行):
2、文件寫入
我們先讀取剛剛的 input.txt
文件,然后寫入到 output.txt
文件
#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
// 文件讀取
ifstream input("input.txt");
// 文件寫入
ofstream output("output.txt");
// 逐行讀取
string line;
while (getline(input, line))
{
output << line << endl;
}
cin.get();
}
我們找到與 input.txt
同文件夾的 output.txt
文件,即可看到如下內(nèi)容:
三、結(jié)構(gòu)體
結(jié)構(gòu)體是用戶自定義的復(fù)合數(shù)據(jù)結(jié)構(gòu),里面可以包含多種不同類型的數(shù)據(jù)對象。
下面的代碼進(jìn)行了 定義結(jié)構(gòu)體、創(chuàng)建數(shù)據(jù)對象并做初始化、定義和遍歷結(jié)構(gòu)體數(shù)組 等操作,代碼很簡單,類似于類的定義和創(chuàng)建,一睹為快!
#include<iostream>
#include<string>
using namespace std;
// 定義一個(gè)結(jié)構(gòu)體
struct StudentInfo
{
string name;
int age;
double score;
}stu2, stu3 = {"前端雜貨鋪", 22, 90};
// 輸出數(shù)據(jù)對象的完整信息
void printInfo(StudentInfo stu)
{
cout << "學(xué)生姓名:" << stu.name << "\t 年齡:" << stu.age << "\t 成績:" << stu.score << endl;
}
int main()
{
// 創(chuàng)建數(shù)據(jù)對象并做初始化
StudentInfo stu = {"張三", 18, 95.5};
StudentInfo stu1 = { "李四", 20, 85 };
StudentInfo stuCopy = stu3;
stu2.name = "王五";
stu2.age = 12;
stu2.score = 65;
printInfo(stuCopy);
printInfo(stu);
printInfo(stu1);
printInfo(stu2);
// 定義結(jié)構(gòu)體數(shù)組
StudentInfo s[3] = {
{"孫行者", 18, 85.2},
{"行者孫", 20, 96.2},
{"者行孫", 23, 85.2}
};
for (StudentInfo stu : s) {
printInfo(stu);
}
cin.get();
}
四、 枚舉
當(dāng)遇到某個(gè)數(shù)據(jù)對象只能取有限個(gè)常量值的情況時(shí)(比如一周七天),C++提供了另一種批量創(chuàng)建符號常量的方式,可以替代 cont,即枚舉類型 enum。
與結(jié)構(gòu)體不同的是,枚舉類型內(nèi)只有有限個(gè)名字,它們都各自代表一個(gè)常量,被稱為 “枚舉量”。
#include<iostream>
using namespace std;
enum Week
{
Mon, Tue, Wed, Thu = 10, Fri, Sat, Sun
};
int main()
{
Week w1 = Mon;
Week w3 = Week(3);
Week w4 = Thu;
Week w5 = Fri;
cout << "w1 = " << w1 << endl; // 0
cout << "w3 = " << w3 << endl; // 3
cout << "w4 = " << w4 << endl; // 10
cout << "w5 = " << w5 << endl; // 11
cin.get();
}
總結(jié)
本篇文章我們認(rèn)識了字符串、文件的讀寫,并認(rèn)識了結(jié)構(gòu)體和枚舉的使用方式等??傮w內(nèi)容比較簡單,有個(gè)大體的理解就可以。
好啦,本篇文章到這里就要和大家說再見啦,祝你這篇文章閱讀愉快,你下篇文章的閱讀愉快留著我下篇文章再祝!
參考資料:文章來源:http://www.zghlxwxcb.cn/news/detail-848452.html
- 百度百科 · C++
- 2023最新版C++【作者:bilibili-尚硅谷】
文章來源地址http://www.zghlxwxcb.cn/news/detail-848452.html
到了這里,關(guān)于C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!