国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉

這篇具有很好參考價(jià)值的文章主要介紹了C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

個(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)容…

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言

接下來,我們分別使用 按照單詞逐個(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è)字符就行):

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言


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)容:

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言


三、結(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();
}

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言


四、 枚舉

當(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è)大體的理解就可以。

好啦,本篇文章到這里就要和大家說再見啦,祝你這篇文章閱讀愉快,你下篇文章的閱讀愉快留著我下篇文章再祝!


參考資料:

  1. 百度百科 · C++
  2. 2023最新版C++【作者:bilibili-尚硅谷】

C++——字符串、讀寫文件、結(jié)構(gòu)體、枚舉,C++,c++,狀態(tài)模式,開發(fā)語言文章來源地址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)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • c++簡單做一個(gè)文件變長儲存(自己封裝字符串類)

    用戶信息寫到文件是變長方式; 從文件上讀取到內(nèi)存,也是變長方式 用到了三個(gè)類; ** 用戶信息類 ClassStu ** 自封裝字符串類MyStr ** 文件類 源碼如下 使用如下: ClassStu MyStr cFile classstu Mystr cFile

    2024年01月17日
    瀏覽(18)
  • 如何從Java中的字符串值中獲取枚舉值

    說我有一個(gè)枚舉,它只是 我想找到一個(gè)字符串的枚舉值,例如 “A” 這將是 Blah.A。怎么可能做到這一點(diǎn)? Enum.valueOf() 是我需要的方法嗎?如果是這樣,我將如何使用它? 保持自己快人一步,享受全網(wǎng)獨(dú)家提供的一站式外包任務(wù)、遠(yuǎn)程工作、創(chuàng)意產(chǎn)品訂閱服務(wù)–huntsbot.com 是的

    2024年02月16日
    瀏覽(30)
  • 【每日一題Day217】LC2451差值數(shù)組不同的字符串 | 枚舉+變量記錄

    給你一個(gè)字符串?dāng)?shù)組 words ,每一個(gè)字符串長度都相同,令所有字符串的長度都為 n 。 每個(gè)字符串 words[i] 可以被轉(zhuǎn)化為一個(gè)長度為 n - 1 的 差值整數(shù)數(shù)組 difference[i] ,其中對于 0 = j = n - 2 有 difference[i][j] = words[i][j+1] - words[i][j] 。注意兩個(gè)字母的差值定義為它們在字母表中 位置

    2024年02月07日
    瀏覽(18)
  • 【數(shù)據(jù)結(jié)構(gòu)-字符串 三】【棧的應(yīng)用】字符串解碼

    【數(shù)據(jù)結(jié)構(gòu)-字符串 三】【棧的應(yīng)用】字符串解碼

    廢話不多說,喊一句號子鼓勵(lì)自己:程序員永不失業(yè),程序員走向架構(gòu)!本篇Blog的主題是【字符串轉(zhuǎn)換】,使用【字符串】這個(gè)基本的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),這個(gè)高頻題的站點(diǎn)是: CodeTop ,篩選條件為: 目標(biāo)公司+最近一年+出現(xiàn)頻率排序 ,由高到低的去 ??蚑OP101 去找,只有兩個(gè)

    2024年02月07日
    瀏覽(45)
  • 匯編和c++初學(xué),c++字符串加整型,導(dǎo)致的字符串偏移

    匯編和c++初學(xué),c++字符串加整型,導(dǎo)致的字符串偏移

    從匯編角度分析\\\"helloworld\\\"+1 “helloworld”+1對應(yīng) eax地址偏移加了1, 最終取的內(nèi)存偏移地址,所以此時(shí)的test是elloword,后面調(diào)用iostream封裝的字符串相加方法。 最終結(jié)果是 做的前端,如果是js,1會轉(zhuǎn)換為字符串后相加,最近剛學(xué)c++和匯編,目前還是一知半解的,如有不對,請指

    2024年01月16日
    瀏覽(31)
  • C++將字符串中包含指定字符串范圍內(nèi)的字符串全部替換

    將指定字符串所在的范圍之內(nèi)的字符串全部替換為指定的字符串。如: 源字符串: 轉(zhuǎn)換后的字符串: 或者轉(zhuǎn)換為: 本文就是記錄一種將上述字符串替換成功的方法。其中轉(zhuǎn)換之后的第一個(gè)字符串,實(shí)際上是將原有字符串中 “$START$” 和 “$END$” 替換為 “” (空字符串);

    2024年02月07日
    瀏覽(23)
  • C++基礎(chǔ)容器 -- C的數(shù)組和字符串和C++的數(shù)組和字符串

    數(shù)組 概念 代表內(nèi)存里一組連續(xù)的同類型存儲區(qū) 可以用來把多個(gè)存儲區(qū)合并成一個(gè)整體 數(shù)組聲明 int arr[10]; 類型名稱int表述數(shù)組里面所有元素的類型 名稱arr是數(shù)組的名稱 整數(shù)10表示數(shù)組里面的元素個(gè)數(shù) 數(shù)組里元素個(gè)數(shù)不可以改變 使用 每個(gè)元素都有下標(biāo),通過下標(biāo)可以直接訪

    2024年02月06日
    瀏覽(47)
  • .net通過S7.net讀寫西門子PLC中,字符串,bool,整數(shù),小數(shù)及byte型

    .net通過S7.net讀寫西門子PLC中,字符串,bool,整數(shù),小數(shù)及byte型

    注:.net中通過TCP/IP方式通過S7.net.dll動(dòng)態(tài)庫,連接到西門子PLC,西門子程序中許勾選優(yōu)化塊,程序讀取需要 db塊號+偏移量 一。使用VS項(xiàng)目,在項(xiàng)目中添加S7.net動(dòng)態(tài)庫 代碼中引用S7.net動(dòng)態(tài)庫 using S7.Net; 實(shí)例化PLC服務(wù)名 /// /// 實(shí)例化PLC /// Plc S71500; 連接PLC按鈕時(shí)間編寫: 以上代碼

    2023年04月15日
    瀏覽(26)
  • c++ 字符串去除指定的字符

    使用 std::string 的 erase 和 find 方法 循環(huán)查找并擦除特定字符,逐個(gè)字符地搜索并移除字符 使用 std::remove 算法和 erase std::remove 函數(shù)可以用來移除指定的字符,并返回一個(gè)新的“邏輯”結(jié)束位置。實(shí)際的字符串內(nèi)容沒有改變,但所有需要保留的字符已經(jīng)被移動(dòng)到字符串的開始位

    2024年03月17日
    瀏覽(26)
  • c++讀取字符串字符時(shí)出錯(cuò)

    c++讀取字符串字符時(shí)出錯(cuò)

    這是我做的一個(gè)c++爬蟲程序但是在抓取網(wǎng)頁的時(shí)候string類型傳遞出現(xiàn)了問題 以下是圖片代碼 ?url的值是 \\\"http://desk.zol.com.cn/\\\" 我不知道為什么數(shù)據(jù)傳遞會出問題 請大佬指教 后面重新啟動(dòng)一遍編譯器查一查斷點(diǎn)有突然沒問題了 ,真是個(gè)玄學(xué)的問題。我還以為是mallco出問題了

    2024年02月12日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包