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

C++感受6-Hello World 交互版

這篇具有很好參考價值的文章主要介紹了C++感受6-Hello World 交互版。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

  • 變量、常量
  • 輸入、輸出、流
  • getline() 函數(shù)讀入整行輸入
  • Hello() 函數(shù)復習
  • 新定義函數(shù) Input() 實現(xiàn)友好的人機交互
  • 還有 “痘痘” 為什么擠不到的分析……

C++感受6-Hello World 交互版,C++快速感受與探索之旅,白話C++,c++,開發(fā)語言

?

1. DRY 原則簡介

上一節(jié)課,我們寫了兩版“問候”程序。第一版的最大問題是重復的內(nèi)容比較多,每一次問候都在重復從 cout 到 endl 的代碼,中間只有人名不同。

剛學編程的人可能會說:“代碼重復怕什么???在電腦里 復制、 粘貼 文本非??彀?!”

問題不在于寫代碼是快還是慢,而在于重復的代碼,難以修改、難以維護。

重復的代碼,它們的背后的業(yè)務邏輯往往是相同或者高度相似的。如果有一天,這個業(yè)務邏輯發(fā)生改變,就會造成代碼中所有重復的地方都要修改。我們現(xiàn)在的代碼才幾行而已,如果有一天q有上千,上萬行代碼,我們很可能都無法找出所有重復的地方,一個個修改過去也極大可能引發(fā)新的錯誤。

“不要到處寫重復的代碼”,這已經(jīng)成為專門一條行業(yè)內(nèi)的編碼規(guī)矩,稱為 “DRY”原則,也就是 “Dont’t repeat yourself”,不要重復你自己。

2. 新情景、新需求

第二版的問候程序,有很大的進步。因為我們把重復的,問候操作,寫成一個函數(shù),叫Hello(),多次調(diào)用。這樣一來,將來,如果問候操作,需要變化,我們也只需要修改這個Hello()函數(shù)即可。

// 我的第一個函數(shù)
void Hello(std::string_view XXX)
{
    std::cout << "你好," << XXX << "!" << std::endl;
}

?這一節(jié)課,我們要為問候業(yè)務,提出新的場景需求:模擬在上班路上,碰到誰,就問候誰的過程。

碰上誰,就問候誰……那我們能事先知道每一天上班會碰到誰嗎?當然無法預知。這樣一看,現(xiàn)有的這第二版問候程序就顯得非?!八腊濉绷?。每一次運行這個程序,都是先問候志玲,再問候冪冪,再問候冰冰……無論運行多少次,它的問候過程都是一成不變的。

這就說到了“變”!我們需要可以變的姓名;這就引出這節(jié)譚,們要學習第一個重要的知識點:變量。

3. 認識變量和常量

程序中的數(shù)據(jù),可以按可變和不可變區(qū)分,分成兩大類:常量和變量。

3.1 常量

常量,就是在程序運行之后,無法修改,或禁止修改它的“量”的數(shù)據(jù)。

這里的“量”,更通俗易懂的說法是一個數(shù)據(jù)的“值”,或者說,一塊內(nèi)存里存放的內(nèi)容。

我們以后會重點講解常量。不過,大家要在今天記住這兩個描述:“無能力修改” 和 “禁止修改”。

來舉一個“惡俗”,但絕對管用的例子吧——

假設你是一個非常喜歡擠別人痘痘的人。然后,有個女生說她后背某個地方長了一顆很大的痘痘,可是她不告訴你這顆痘痘的位置。請問,你能擠掉一顆你看不見,摸不著的痘痘嗎?當然不能,這就叫“無能力修改”。

另外一種情況,這顆痘痘就長在女生鼻頭上,你看得見,摸得著,但是你能伸手就擠掉它嗎?也不能,因為人家女生不允許你動它。

C++感受6-Hello World 交互版,C++快速感受與探索之旅,白話C++,c++,開發(fā)語言

這就是將來我們會學習到的,最常見的兩種類型的常量:一種是代碼在客觀上沒有能力修改的數(shù)據(jù),一種在語法上明確標明不讓修改的數(shù)據(jù)。上一課第一版代碼中的名字字符串,就是第一種,叫“字面常量”。它就像我們白紙黑字簽下的字,一旦寫下,就涂改不了。

3.2 變量

初中學習的代數(shù),當一個數(shù)據(jù)我們暫時不知道它會是什么值時,我們可以用個字母,比如 x、y、z,來暫時先代表這個數(shù)據(jù)。在程序中,一個數(shù)據(jù),我們暫時不知道它會是什么值;或者,知道它一開始的值,但這個值會隨著程序的運行而不斷變化,這情況下,我們也可以用一個字母,或者更好的,用一個單詞來表達它,表達這個會變化的數(shù)據(jù)。

今天,我們不知道什么?答,我們不知道每一天上班路上會先遇到誰,后遇到誰。所以,就讓我們寫的C++程序,定義第一個真正意義上的變量,取名為 “” 吧!

你當然也可以使用 X 來表達,這樣顯得更加有科技感和神秘感。但是,我覺得用名字是“誰”這個變量,來表達程序中可能遇到誰誰誰誰……想一想是不是也挺直觀的?

沒錯,這也是我們今天學習到又一個重要的知識點:變量的名字一定要能直觀地表達它的作用。

來看一些常量與變量使用對比的例子——

  • “我的體重是 60 公斤”:人的體重很少一成不變,所以我們得用變量表達它,這個變量的名字可以叫 weight。

  • “我的身高 175 厘米……”:也一樣,從小到大再到老,身高也會變化,這個變量可以叫 height。

3.3 變量常見使用過程

結(jié)合用變量表達待問候的人名的例子,我們來看看變量最常見的使用過程。

(1)定義變量

要使用變量,首先需要定義變量。C++定義變量時,需要給出變量名字,還需要直接或間接給出變量的類型。今天我們學習其中的“直接”方式:

變量類型 變量名字;

即:先寫下變量的類型,再寫下它的名字,然后用分號結(jié)束,這是定義變量的一種常見語法。

在我們的例子,變量名是,它實際是要表達人的名字,所以它的類型應該是字符串。在 C++ 的標準庫中,有一個叫 string 的類型,用來表達字符串。

std::string 誰;  // 定義了一個變量,名字叫誰,類型是 std::string

大家還記得前面課堂學習到的名字空間的知識點吧?特別是這個 std:: 的寫法,你應該很熟悉了。

這樣定義的變量誰,一開始時,它并不持任何字符內(nèi)容(或者說,它持有一個空的字符串)。

2)修改變量的值

有了一個變量,接下來,就可以修改它的“量”了,也就是為它賦值。你可能猜到了,賦值操作在C++中,就是日常的 “=” 操作符(等號)。

下面演示了賦值 “張三” 給 的代碼:

誰 = "張三";  // 修改這個變量的值 (量、內(nèi)存)

(3)使用變量

變量很方便用來傳遞一個值,比如,我們可以把 誰 作為之前我們寫的 Hello() 函數(shù)的入?yún)?,以實現(xiàn)將 誰 的當前值(第2步中的 “張三”)傳遞給 Hello() 函數(shù)的入?yún)ⅲㄟ€記得嗎,這個入?yún)⑹且粋€“偷窺狂”,哦不是,是“觀察者”)……

Hello(誰);  // 將誰的當前值,傳遞給 Hello() 函數(shù)入?yún)ⅲ儆诤瘮?shù)內(nèi)部輸出其值

(4)再改,再用

變量變量,比孫悟空還善變,悟空才能連續(xù)72變,我們的變量可以無窮盡地變下去……

誰 = "李天王";
Hello(誰);

誰 = "孫悟空";
Hello(誰);

// ...

3.4 變量使用完整示例代碼

#include <iostream>
#include <string>
#include <string_view>

void Hello(std::string_view XXX)
{
    std::cout << "你好," << XXX << "!" << std::endl;
}

int main()
{
    std::string 誰; 

    誰 = "志玲";
    Hello(誰);

    誰 = "冪冪";
    Hello(誰);

    誰 = "冰冰";
    Hello(誰);

    誰 = "熱巴";
    Hello(誰);

    誰 = "真木陽子";
    Hello(誰);

    誰 = "井川遙";
    Hello(誰);

    誰 = "Lily Collins";
    Hello(誰);
}

問題來了:這個使用變量的版本,感覺寫起來,比之前的常量版本還啰嗦呀?

4. 人機交互!

4.1 認識 getline()

盡管用了變量,但這個版本每次運行起來,輸出結(jié)果還是一成不變;甚至寫起來比常量的那個版本,還要麻煩、還啰嗦,并且,沒有引入什么新功能呀?!

我們準備這樣來模擬每天上班路上遇到誰問候誰的過程:我們讓用戶(其實,就是我們自己),在程序運行時,通過鍵盤輸入一個姓名,輸入誰,就表示我們遇到誰。

我們要輸入的是一個姓名,一個字符串。并且,如果是外國人的話,那么他們的姓名中間可能包含空格。C++標準庫提供了一個 getline() 的函數(shù),特別適合于讀入整行的字符串,包括中間的空格。

getline() 有兩個入?yún)?。第一個入?yún)⒅付ㄝ斎肓鳌J裁唇小拜斎肓鳌保?/p>

【輸入、輸出】:首先來理解什么叫“輸入”:往程序里“塞”數(shù)據(jù),就叫“輸入”。大家順便可以理解一下什么叫 “輸出”,程序往外“吐”數(shù)據(jù),就叫輸出,也就是,編程時講的輸入和輸出,是以程序為中心來理解的。

【流】:那什么叫流:水流、電流,都是流。流就是在同一個方向上的排著隊的一大堆數(shù)據(jù)。比如,“車流”就是:同一個行駛方向上,有很多車一輛接一輛地往前走。

C++感受6-Hello World 交互版,C++快速感受與探索之旅,白話C++,c++,開發(fā)語言

本站深入講解,包含多個實踐項目的 C++“流”的高級課程:
《C++“流”編程視頻輔導》課程 建議及時加深學習

我們現(xiàn)在寫的程序,暫時只能使用鍵盤往程序里輸入數(shù)據(jù),一陣“噼噼啪啪”敲鍵盤,就可以往程序里輸入一大串字符,因此它滿足“輸入流”的概念的三個要素:

  • 同一個方向:鍵盤到主機
  • 支持連續(xù):噼噼啪啪快速輸入,一個字符都不會丟
  • 支持排隊(即有序):無論你擊鍵有多少,都不可能出現(xiàn)先輸入字符的后到,后輸入的字符先到的亂序情況

所以,C++標準庫就把鍵盤輸入,包裝成一個 標準字符輸入流,并且預先定義成一個變量。

如果是我寫的標準庫,那這個變量的名字肯定得叫 噼噼啪啪,可惜不是。
這個預先定義的,代表標準輸入流,或者說,絕大多數(shù)情況下,代表鍵盤的變量,它的真正的名字叫 cin。c指字符,in 指輸入 。加上標準庫名字空間直接限定,就是 std::cin。

getline() 函數(shù)的第二個入?yún)?,在本例中,我們給的是我們自己定義的字符串變量,也就是。

當程序這樣寫時:

getline(std::cin, 誰); 

執(zhí)行該句代碼并完成 getline() 的調(diào)用之后,變量的值,就是用戶從鍵盤上輸入的一行文本。輸入一行文本,是指用戶輸入一些普通字符內(nèi)容(包括漢字內(nèi)容)之后,非常瀟灑的拍下鍵盤上的回車鍵。getline()開始從行首一直讀到行尾,不含回車換行。

如果用戶在此期間就是不碰鍵盤,那程序就會“卡”在這一行一動不動。

4.2 問候程序的人機交互第一版

#include <iostream>
#include <string_view>
#include <string>


void Hello(std::string_view XXX)
{
    std::cout << "你好," << XXX << "!" << std::endl;
}

int main()
{
    std::string 誰; 

    std::getline(std::cin, 誰);
    Hello(誰);

    std::getline(std::cin, 誰);
    Hello(誰);
}

為了不浪費版面,暫時就只支持上班路上遇到兩個吧!后面的遇到的,管他是大老板還是小保安,管她是不是你暗戀的辦公室女神,咱們就全都假裝沒看到。

5. 是時候看視頻了……

ffls09-HelloWorld-交互版

6. 最終版本代碼

將 “遇見” 的過程,也封裝成一個函數(shù):Input(),該函數(shù)返回用戶輸入的姓名,并且提供了更好的人機交互界面。

#include <iostream>
#include <string_view>
#include <string>

// 負責問候(輸出)
void Hello(std::string_view XXX)
{
    std::cout << "你好," << XXX << "!" << std::endl;
}

// 負責遇見(輸入)
std::string Input()
{
    std::cout << "遇見誰了?請輸入他的名字:";

    std::string name;
    std::getline(std::cin, name);
    return name;
}

int main()
{
    std::string 誰; 
	
    誰 = Input(); // 遇見誰
    Hello(誰);  // 問候誰

    誰 = Input(); // 縱不遇見你
    Hello(誰);   // 也想問候你
}

「本課終」文章來源地址http://www.zghlxwxcb.cn/news/detail-860077.html

到了這里,關于C++感受6-Hello World 交互版的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • C++ 編程入門(一)—— Hello World

    C++ 是什么 環(huán)境搭建 第一個 C++ 程序 本篇結(jié)語 C++ 是一種面向?qū)ο蟮挠嬎銠C程序設計語言,由美國 ATT 貝爾實驗室的 Bjarne Stroustrup 在 20 世紀 80 年代初期發(fā)明并實現(xiàn)(最初這種語言被稱作 “C with Classes” 帶類的 C 語言)。它是一種靜態(tài)數(shù)據(jù)類型檢查的、支持多重編程范式的通

    2024年02月15日
    瀏覽(22)
  • <C++>快來精通C++的“Hello world“寫法

    <C++>快來精通C++的“Hello world“寫法

    C語言是結(jié)構(gòu)化和模塊化的語言,適合處理較小規(guī)模的程序。對于復雜的問題,規(guī)模較大的程序,需要高度的抽象和建模時,C語言則不合適。 為了解決軟件危機, 20世紀80年代, 計算機界提出了 OOP(objectoriented programming:面向?qū)ο?思想 ,支持面向?qū)ο蟮某绦蛟O計語言應運而生

    2024年02月04日
    瀏覽(22)
  • 多機TCP通訊之hello world(C++)

    多機TCP通訊之hello world(C++)

    TCP(傳輸控制協(xié)議)是一種在計算機網(wǎng)絡中廣泛使用的協(xié)議,它提供了可靠的、面向連接的數(shù)據(jù)傳輸服務。TCP 是 OSI 模型中的傳輸層協(xié)議,它確保了數(shù)據(jù)的可靠性、順序性和流控制。 以下是 TCP 通訊的一些關鍵特點和概念: 可靠性: TCP 提供可靠的數(shù)據(jù)傳輸。它使用確認機制

    2024年02月02日
    瀏覽(25)
  • C++并發(fā)編程學習01——hello concurrent world

    編譯 gdb調(diào)試 管理線程的函數(shù)和類在 thread 中聲明,而保護共享數(shù)據(jù)的函數(shù)和類在其他 頭文件中聲明 每個線程都必須具有一個初始函數(shù)(initial function),新線程的執(zhí)行從這個函數(shù)開始。對于應用程序來說,初始線程是main(),但是對于其他線程,可以在 std::thread 對象的構(gòu)造函數(shù)中

    2024年02月11日
    瀏覽(28)
  • Visual Studio 2022 CMake C++ Hello World

    Visual Studio 2022 CMake C++ Hello World

    C++自學精簡教程 目錄(必讀) Visual Studio 2022 安裝??????? 什么是CMake CMake是跨平臺的C/C++工程構(gòu)建工具。 我們知道, 在Windows上用Visual Studio開發(fā)C/C++代碼,工程文件是用.vcxproj文件來組織的; 在Linux上用gcc/g++開發(fā)C/C++代碼,工程文件是用Makefile文件來組織的; 很多時候我

    2024年02月16日
    瀏覽(17)
  • 零基礎快速上手HarmonyOS ArkTS開發(fā)1---運行Hello World、ArkTS開發(fā)語言介紹

    零基礎快速上手HarmonyOS ArkTS開發(fā)1---運行Hello World、ArkTS開發(fā)語言介紹

    在華為開發(fā)者大會2023年8月4日(HDC.Together)大會上,HarmonyOS?4正式發(fā)布,其實在2021年那會學習了一點鴻蒙的開發(fā): 不過因為現(xiàn)在的鴻蒙手機完全兼容Android應用,所以學習動力也不是很足,一直就擱置了,直到今年華為官方出了這么一則消息才讓我對于學習它有一種緊迫感了,如

    2024年02月05日
    瀏覽(31)
  • ROS入門教程(二) 用C++ 實現(xiàn)Hello world

    ROS入門教程(二) 用C++ 實現(xiàn)Hello world

    代碼在git link Hello world實現(xiàn)流程 無論是C++還是Python其他編程語言,實現(xiàn)流程都是大同小異: 創(chuàng)建工作空間 → 創(chuàng)建功能包 → 編輯源文件 → 編輯配置文件 → 編譯并執(zhí)行 step1.創(chuàng)建工作空間 Ctrl+Alt+T打開終端分別輸入:【在主目錄下創(chuàng)建工作空間】 其中helloworld_ws為我們命名的

    2023年04月10日
    瀏覽(24)
  • 用Visual Studio編寫C++程序,輸出Hello World

    用Visual Studio編寫C++程序,輸出Hello World

    1.創(chuàng)建新項目 必須是空項目 ?2.保存路徑 自己選擇合適的地方。 3.創(chuàng)建文件 進來之后一片空白,雖然我們已經(jīng)建立了項目,但是項目都是由一個或多個文件組成的(相當于文件夾),這個項目里面還沒有文件,所以需要在項目中創(chuàng)建文件。 右鍵點擊“源文件”,選擇添加-新

    2024年02月06日
    瀏覽(30)
  • 探索自動化網(wǎng)頁交互的魔力:學習 Selenium 之旅【超詳細】

    探索自動化網(wǎng)頁交互的魔力:學習 Selenium 之旅【超詳細】

    \\\"在當今數(shù)字化的世界中,網(wǎng)頁自動化已經(jīng)成為了不可或缺的技能。想象一下,您可以通過編寫代碼,讓瀏覽器自動執(zhí)行各種操作,從點擊按鈕到填寫表單,從網(wǎng)頁抓取數(shù)據(jù)到進行自動化測試。學習 Selenium,這一功能強大的自動化工具,將為您打開無盡的可能性。在本博客中,

    2024年02月13日
    瀏覽(15)
  • 【Java探索之旅】方法的概念 定義 執(zhí)行流程 實參與形參的交互

    【Java探索之旅】方法的概念 定義 執(zhí)行流程 實參與形參的交互

    ?? 嶼小夏 : 個人主頁 ??個人專欄 : Java編程秘籍 ?? 莫道桑榆晚,為霞尚滿天! 方法是Java編程中非常重要的概念,它能夠幫助我們組織代碼、實現(xiàn)代碼的重復使用,并使代碼更加清晰易懂。本文將介紹方法的概念、定義以及調(diào)用執(zhí)行過程,同時解釋實參和形參之間的關

    2024年04月14日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包