DSA_输入输出
https://www.cnblogs.com/Allen-rg/p/13922965.html
while(cin)說明
下面談到的輸入問題其實(shí)都建議用while(cin)的形式,最主要的原因是由于??途W(wǎng)在線編程和實(shí)際考試的系統(tǒng)中測(cè)試代碼用的都是多組測(cè)試用例,如果不用while(cin)的形式或許某些情況下會(huì)正確,但是用的話基本上都能保證測(cè)試的正確性。
其實(shí)這樣也是很正常的,因?yàn)榇a已經(jīng)編譯運(yùn)行過了一次,直接在該次運(yùn)行中進(jìn)行多組測(cè)試即可,無需多次重復(fù)編譯運(yùn)行。
輸入
幾乎所有的輸入都是數(shù)字或者字符串,根據(jù)數(shù)字和字符串可以將輸入分為幾種情況:
0.基礎(chǔ)知識(shí)cin的用法
1. cin 簡(jiǎn)介
cin 是 cpp 標(biāo)準(zhǔn)輸入流對(duì)象,即 istream 類的對(duì)象。cin 主要用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),這里的標(biāo)準(zhǔn)輸入指終端鍵盤。
此外,cout 是標(biāo)準(zhǔn)輸出流對(duì)象,即 ostream 類的對(duì)象。cerr 是標(biāo)準(zhǔn)錯(cuò)誤輸出流對(duì)象,也是 ostream 類的對(duì)象。
這里的標(biāo)準(zhǔn)輸入指終端鍵盤,標(biāo)準(zhǔn)錯(cuò)誤輸出指終端屏幕。
在理解 cin 功能時(shí),不得不提標(biāo)準(zhǔn)輸入緩沖區(qū)。
當(dāng)我們從鍵盤輸入字符串的時(shí)候需要敲一下回車鍵才能夠?qū)⑦@個(gè)字符串送入到緩沖區(qū)中,那么敲入的這個(gè)回車鍵(\r)會(huì)被轉(zhuǎn)換為一個(gè)換行符(\n),這個(gè)換行符也會(huì)被存儲(chǔ)在 cin 的緩沖區(qū)中并且被當(dāng)成一個(gè)字符來計(jì)算!
比如我們?cè)阪I盤上敲下了 123456 這個(gè)字符串,然后敲一下回車鍵(\r)將這個(gè)字符串送入了緩沖區(qū)中,那么此時(shí)緩沖區(qū)中的字節(jié)個(gè)數(shù)是 7 ,而不是 6。
cin 讀取數(shù)據(jù)也是從緩沖區(qū)中獲取數(shù)據(jù),緩沖區(qū)為空時(shí),cin 的成員函數(shù)會(huì)阻塞等待數(shù)據(jù)的到來,一旦緩沖區(qū)中有數(shù)據(jù),就觸發(fā) cin 的成員函數(shù)去讀取數(shù)據(jù)。
2. cin 常用輸入方法
使用 cin 從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù)時(shí),通常用到的方法有 cin>>、cin.get(),cin.getline()。
2.1 cin>> 的用法
cin 可以連續(xù)從鍵盤讀取想要的數(shù)據(jù),以空格、tab 或換行作為分隔符。實(shí)例如下。
#include <iostream> using namespace std;int main() {char a;int b;float c;cin>>a>>b>>c;cout<<a<<" "<<b<<" "<<c<<" "<<endl;return 0; }在屏幕中一次輸入:a[回車]11[回車]5.56[回車],程序?qū)⑤敵鋈缦陆Y(jié)果:
a 11 5.56a 11 5.56(1)cin>> 等價(jià)于 cin.operator>>(),即調(diào)用成員函數(shù) operator>>() 進(jìn)行讀取數(shù)據(jù)。
(2)當(dāng) cin>> 從緩沖區(qū)中讀取數(shù)據(jù)時(shí),若緩沖區(qū)中第一個(gè)字符是空格、tab或換行這些分隔符時(shí),cin>> 會(huì)將其忽略并清除,繼續(xù)讀取下一個(gè)字符,若緩沖區(qū)為空,則繼續(xù)等待。但是如果讀取成功,字符后面的分隔符是殘留在緩沖區(qū)的,cin>> 不做處理。
(3)不想略過空白字符,那就使用 noskipws 流控制。比如 cin>>noskipws>>input;
驗(yàn)證程序如下:
#include <string> #include <iostream>using namespace std;int main() {char a;int b;float c;string str;cin>>a>>b>>c>>str;cout<<a<<" "<<b<<" "<<c<<" "<<str<<endl;string test;getline(cin,test); //不阻塞cout<<"test:"<<test<<endl;return 0;}從鍵盤輸入:[回車][回車][回車]a[回車]5[回車]2.33[回車]hello[回車],輸出結(jié)果是:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-Gef9kft6-1637483340340)(DSA_輸入輸出.assets/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTUwOTA0MjEzNTU0MzM4)]
從結(jié)果可以看出,cin>> 對(duì)緩沖區(qū)中的第一個(gè)換行符視而不見,采取的措施是忽略清除,繼續(xù)阻塞等待緩沖區(qū)有效數(shù)據(jù)的到來。但是,getline() 讀取數(shù)據(jù)時(shí),并非像 cin>> 那樣忽略第一個(gè)換行符,getline() 發(fā)現(xiàn) cin 的緩沖區(qū)中有一個(gè)殘留的換行符,不阻塞請(qǐng)求鍵盤輸入,直接讀取,送入目標(biāo)字符串后,因?yàn)樽x取的內(nèi)容為空,所以程序中的變量 test 為空串。
2.2 cin.get() 的用法
該函數(shù)有多種重載形式,分為四種格式:無參,一參數(shù),二參數(shù),三個(gè)參數(shù)。常用的的函數(shù)原型如下:
int get(); istream& get(char& var); istream& get( char* s, streamsize n ); istream& get( char* s, streamsize n, char delim);其中 streamsize 在 Vcpp 中被定義為 long long 型。另外,還有兩個(gè)重載形式不怎么使用,就不詳述了,函數(shù)原型如下:
istream& get (streambuf& sb);
istream& get (streambuf& sb, char delim);
2.2.1 cin.get() 讀取一個(gè)字符
讀取一個(gè)字符,可以使用 cin.get() 或者 cin.get(var),示例代碼如下:
#include <iostream>using namespace std;int main() {char a;char b;a=cin.get();cin.get(b);cout << a << b <<endl;return 0; }輸入:e[回車],輸出:
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-N6k1VO7Q-1637483340341)(DSA_輸入輸出.assets/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTUwOTA0MjEzNzAwMzA2)]
(1)從結(jié)果可以看出,cin.get() 從輸入緩沖區(qū)讀取單個(gè)字符時(shí)不忽略分隔符,直接將其讀取,就出現(xiàn)了如上情況,將換行符讀入變量 b,輸出時(shí)換行兩次,一次是變量 b,一次是 endl。
(2)cin.get() 的返回值是 int 類型,成功則返回讀取字符的 ASCII 碼值。
(3)cin.get(char var) 如果成功返回的是 cin 對(duì)象,因此支持鏈?zhǔn)讲僮?#xff0c;如cin.get(b).get?。
2.2.2 cin.get() 讀取一行
讀取一行可以使用:
istream& get(char* s, streamsize n) istream& get(char* s, size_t n, streamsize delim)二者的區(qū)別是前者默認(rèn)以換行符結(jié)束,后者可指定行結(jié)束符。n 表示目標(biāo)空間的大小。
二者的區(qū)別是前者默認(rèn)以換行符結(jié)束,后者可指定行結(jié)束符。n 表示目標(biāo)空間的大小。
示例代碼如下:
#include <iostream>using namespace std;int main() {char a;char array[20]={NULL}; cin.get(array,20);cin.get(a);cout<<array<<" "<<(int)a<<endl;return 0; }輸入:123456789[回車],輸出:
123456789 123456789 10(1)從結(jié)果可以看出,cin.get(array,20);讀取一行時(shí),遇到換行符時(shí)結(jié)束讀取,但是不對(duì)換行符進(jìn)行處理,換行符仍然殘留在輸入緩沖區(qū)。第二次由 cin.get() 將換行符讀入變量 b,打印輸入換行符的 ASCII 碼值 10。這也是 cin.get() 讀取一行與使用 cin.getline 讀取一行的區(qū)別所在。cin.getline 讀取一行字符時(shí),默認(rèn)遇到 ‘\n’ 時(shí)終止,并且將 ‘\n’ 直接從輸入緩沖區(qū)中刪除掉,不會(huì)影響下面的輸入處理。
(1)從結(jié)果可以看出,cin.get(array,20);讀取一行時(shí),遇到換行符時(shí)結(jié)束讀取,但是不對(duì)換行符進(jìn)行處理,換行符仍然殘留在輸入緩沖區(qū)。第二次由 cin.get() 將換行符讀入變量 b,打印輸入換行符的 ASCII 碼值 10。這也是 cin.get() 讀取一行與使用 cin.getline 讀取一行的區(qū)別所在。cin.getline 讀取一行字符時(shí),默認(rèn)遇到 ‘\n’ 時(shí)終止,并且將 ‘\n’ 直接從輸入緩沖區(qū)中刪除掉,不會(huì)影響下面的輸入處理。
(2)cin.get(str,size); 讀取一行時(shí),只能將字符串讀入 C 風(fēng)格的字符串中,即 char*,但是 cin.getline() 函數(shù)可以將字符串讀入cpp 風(fēng)格的字符串 string中。鑒于 cin.getline() 較 cin.get() 的這兩種優(yōu)點(diǎn),建議使用 cin.getline() 讀取行。
2.3 cin.getline() 讀取一行
函數(shù)作用:從標(biāo)準(zhǔn)輸入設(shè)備鍵盤讀取一串字符串,并以指定的結(jié)束符結(jié)束。
函數(shù)原型有兩個(gè):
使用示例:
#include <iostream>using namespace std;int main() {char array[20]={NULL};cin.getline(array,20); //或者指定結(jié)束符,使用下面一行//cin.getline(array,20,'\n');cout<<array<<endl;return 0; }注意,cin.getline() 與 cin.get() 的區(qū)別是,cin.getline() 不會(huì)將行結(jié)束符(如換行符)殘留在輸入緩沖區(qū)中。
3.cin 的條件狀態(tài)
使用 cin 讀取鍵盤輸入時(shí),難免發(fā)生錯(cuò)誤,一旦出錯(cuò),cin 將設(shè)置條件狀態(tài)(condition state)。條件狀態(tài)位有:
goodbit(0x0):無錯(cuò)誤
eofbit(0x1):已到達(dá)文件尾
failbit(0x2):非致命的輸入/輸出錯(cuò)誤,可挽回
badbit(0x4):致命的輸入/輸出錯(cuò)誤,無法挽回
與這些條件狀態(tài)對(duì)應(yīng)的就是設(shè)置、讀取和判斷條件狀態(tài)的流對(duì)象的成員函數(shù)。它們主要有:
s.eof():若流 s 的 eofbit 置位,則返回 true
s.fail():若流 s 的 failbit 置位,則返回 true
s.bad():若流 s 的 badbit 置位,則返回 true
s.good():若流 s 的 goodbit 置位,則返回 true
s.clear(flags):清空當(dāng)前狀態(tài), 然后把狀態(tài)設(shè)置為 flags,返回 void
s.setstate(flags):不清空當(dāng)前狀態(tài),設(shè)置給定的狀態(tài) flags,返回 void
s.rdstate():返回流 s 的當(dāng)前條件狀態(tài),返回值類型為 ios_base::iostate
了解以上關(guān)于輸入流的條件狀態(tài)與相關(guān)操作函數(shù),下面看一個(gè)因輸入緩沖區(qū)未讀取完造成的狀態(tài)位 failbit 被置位,再通過 clear()復(fù)位的例子。
#include <iostream>using namespace std;int main() {char ch, str[20]; cin.getline(str, 5);cout<<"goodbit:"<<cin.good()<<endl; // 查看goodbit狀態(tài),即是否有異常cin.clear(); // 清除錯(cuò)誤標(biāo)志cout<<"goodbit:"<<cin.good()<<endl; // 清除標(biāo)志后再查看異常狀態(tài)cin>>ch; cout<<"str:"<<str<<endl;cout<<"ch:"<<ch<<endl;return 0; }輸入:12345[回車],輸出結(jié)果為:
輸入:12345[回車],輸出結(jié)果為:
12345
goodbit:0
goodbit:1
str:1234
ch:5
可以看出,因輸入緩沖區(qū)未讀取完造成輸入異常,通過 clear() 可以清除輸入流對(duì)象cin的異常狀態(tài)。,不影響后面的cin>>ch從輸入緩沖區(qū)讀取數(shù)據(jù)。因?yàn)閏in.getline讀取之后,輸入緩沖區(qū)中殘留的字符串是:5[換行],所以 cin>>ch 將 5 讀取并存入 ch,打印輸入并輸出 5。
如果將 clear() 注釋,cin>>ch; 將讀取失敗,ch 為空。cin.clear() 等同于 cin.clear(ios::goodbit); 因?yàn)?cin.clear() 的默認(rèn)參數(shù)是 ios::goodbit,所以不需顯示傳遞,故而你最??吹降木褪?cin.clear()。
4.cin 清空輸入緩沖區(qū)
從上文中可以看出,上一次的輸入操作很有可能是輸入緩沖區(qū)中殘留數(shù)據(jù),影響下一次輸入。那么如何解決這個(gè)問題呢?自然而然,我們想到了在進(jìn)行輸入時(shí),對(duì)輸入緩沖區(qū)進(jìn)行清空和狀態(tài)條件的復(fù)位。條件狀態(tài)的復(fù)位使用 clear(),清空輸入緩沖區(qū)應(yīng)該使用 cin.ignore()。
函數(shù)原型:
istream &ignore(streamsize num=1, int delim=EOF);函數(shù)作用:跳過輸入流中 n 個(gè)字符,或在遇到指定的終止字符時(shí)提前結(jié)束(此時(shí)跳過包括終止字符在內(nèi)的若干字符)。
使用示例如下:
#include <iostream>using namespace std;int main() {char str1[20] = {NULL}, str2[20] = {NULL};cin.getline(str1,5);cin.clear(); // 清除錯(cuò)誤標(biāo)志cin.ignore(numeric_limits<std::streamsize>::max(),'\n'); // 清除緩沖區(qū)的當(dāng)前行cin.getline(str2,20);cout << "str1:" << str1 << endl;cout << "str2:" << str2 << endl;return 0; }程序輸入:12345[回車]success[回車],程序輸出:
12345
success
str1:1234
str2:success
1
2
3
4
(1)程序中使用 cin.ignore 清空了輸入緩沖區(qū)的當(dāng)前行,使上次的輸入殘留下的數(shù)據(jù)沒有影響到下一次的輸入,這就是 ignore() 函數(shù)的主要作用。其中,numeric_limitsstd::streamsize::max()是頭文件定義的流使用的最大值,你也可以用一個(gè)足夠大的整數(shù)代替它。如果想清空輸入緩沖區(qū)的所有內(nèi)容,去掉換行符即可:
cin.ignore(numeric_limits< std::streamsize>::max());
1
這里要注意的是,如果緩沖區(qū)中沒有 EOF(-1),cin.ignore() 會(huì)阻塞等待。如果在命令行,我們可以使用 Ctrl+Z 然后回車(Windows 命令行)或直接 Ctrl+D(Linux 命令行)輸入 EOF。
(2)cin.ignore();當(dāng)輸入緩沖區(qū)沒有數(shù)據(jù)時(shí),也會(huì)阻塞等待數(shù)據(jù)的到來。
(3)請(qǐng)不要使用 cin.sync() 來清空輸入緩沖區(qū),本人測(cè)試了一下,Vcpp 和 GNU cpp 都不行,請(qǐng)使用 cin.ignore()。
5.從標(biāo)準(zhǔn)輸入讀取一行字符串的其它方法
5.1 getline() 讀取一行
cpp 中定義了一個(gè)在 std 名字空間的全局函數(shù) getline(),因?yàn)檫@個(gè) getline() 函數(shù)的參數(shù)使用了 string 字符串,所以聲明在了頭文件中了。
getline() 利用 cin 可以從標(biāo)準(zhǔn)輸入設(shè)備鍵盤讀取一行,當(dāng)遇到如下三種情況會(huì)結(jié)束讀操作:
(1)文件結(jié)束;
(2)遇到行分隔符;
(3)輸入達(dá)到最大限度。
函數(shù)兩個(gè)重載形式:
istream& getline (istream& is, string& str); //默認(rèn)以換行符\n分隔行
istream& getline (istream& is, string& str, char delim);
1
2
使用示例:
輸入:hello world[回車],輸出:
hello world
1
注意,getline() 遇到結(jié)束符時(shí),會(huì)將結(jié)束符一并讀入指定的 string 中,再將結(jié)束符替換為空字符。因此,進(jìn)行從鍵盤讀取一行字符時(shí),建議使用 getline,較為安全。但是,最好還是要進(jìn)行標(biāo)準(zhǔn)輸入的安全檢查,提高程序容錯(cuò)能力。
cin.getline() 與 getline() 類似,但是因?yàn)?cin.getline() 的輸出是char*,getline() 的輸出是 string,所以 cin.getline() 屬于 istream 流,而 getline() 屬于 string 流,二者是不一樣的函數(shù)。
5.2 gets() 讀取一行
gets() 是 C 中的庫函數(shù),在頭文件 <stdio.h> 申明,從標(biāo)準(zhǔn)輸入設(shè)備讀字符串,可以無限讀取,不會(huì)判斷上限,以回車或者文件結(jié)束符 EOF( 即 -1) 結(jié)束,所以程序員應(yīng)該確保 buffer 的空間足夠大,以便在執(zhí)行讀操作時(shí)不發(fā)生溢出。Windows 下命令行輸入文件結(jié)束符 EOF 的方式為 Ctrl+z,Linux 為 Ctrl+d。
函數(shù)原型:
char *gets(char *buffer);
1
使用示例:
輸入:I am lvlv[回車],輸出:
I am lvlv
1
由于該函數(shù)是 C 的庫函數(shù),所以不建議使用,既然是 cpp 程序,就盡量使用 cpp 的庫函數(shù)吧。
另外,由于 gets() 實(shí)現(xiàn)不夠安全,容易出現(xiàn)緩沖越界,用 fgets() 和 getline() 替代更好。gets() 在cpp11中極不推薦使用,并在 cpp14 中丟棄了該方法,參考鏈接:here。
6.小結(jié)
從標(biāo)準(zhǔn)輸入讀取內(nèi)容,方法多樣,在不同場(chǎng)景下按需取用。如果是 cpp 程序,建議盡量使用 cpp 的庫函數(shù),在使用上會(huì)更加簡(jiǎn)便安全。
1.數(shù)字
通常給定一組數(shù),或者給定一個(gè)數(shù)組
1.1 直接輸入一個(gè)數(shù)字
直接輸入一個(gè)數(shù)字,對(duì)該數(shù)字進(jìn)行一些操作,例如判斷是否是素?cái)?shù),立方根等,這種類型只需要輸入一個(gè)數(shù)即可,有以下幾種輸入:
int N; // 先定義一個(gè)輸入變量用于接收系統(tǒng)輸入的數(shù)字// method 1 cin >> N; // method 2 while(cin >> N) {// 方式二,將輸入放在while后面,這種方式推薦大家用,// 因?yàn)閏pp的輸入是流的方式,因此用while來判斷接收是比較常用的方法,// 不容易出錯(cuò)(一些情況下只能用這種輸入,所以推薦用這種,包括后面的字符串) }1.2 給定一個(gè)數(shù),表示有多少組數(shù)(可能是字符和數(shù)字的組合)
// 舉個(gè)例子,輸入一個(gè)數(shù)N表示有多少個(gè)學(xué)生,然后輸入每個(gè)學(xué)生的姓名和學(xué)號(hào),要求按學(xué)號(hào)降序打印每個(gè)學(xué)生的信息,例子如下: // 輸入:3 // liming,1410 // zhangsan,1562 // lisi,1355 // 輸出: // zhangsan,1562 // liming,1410 // lisi,1355 // 對(duì)于上例,輸入一般采用以下的方法 int N;//學(xué)生總數(shù) while(cin>>N){//while里面輸入總數(shù),然后在該循環(huán)里面處理for(int i=0;i<N;i++){//用for循環(huán)輸入N組數(shù)據(jù)cin>>stu[i].name>>stu[i].num;//輸入姓名和學(xué)號(hào)} } //也可以不用while循環(huán)(不推薦,除非用while不好處理或者處理不了) int N; cin>>N; for(int i=0;i<N;i++){//用for循環(huán)輸入N組數(shù)據(jù)cin>>stu[i].name>>stu[i].num;//輸入姓名和學(xué)號(hào) } // 這種方式看似很直觀易懂,但這種方式對(duì)于系統(tǒng)里的測(cè)試用例來說可能不太友好, // 一般cpp的輸入都強(qiáng)調(diào)流的概念,這種方式只能某些情況下可以使用, // 大家可以自己多刷一刷,就會(huì)發(fā)現(xiàn)這種方式經(jīng)常會(huì)遇到莫名其妙的錯(cuò)誤1.3 可能直接就是要求輸入一組數(shù),并不告知具體的數(shù)量
可能直接就是要求輸入一組數(shù),并不告知具體的數(shù)量,以(2)的例子為例,如果不告訴你多少個(gè)學(xué)生,你就無法根據(jù)學(xué)生數(shù)量用for循環(huán)輸入了,這時(shí)候用while循環(huán)就可以很好地處理(流的處理模式)
// 輸入: // liming,1410 // zhangsan,1562 // lisi,1355 string name;//定義姓名變量 int num;//定義學(xué)號(hào)變量 while(cin>>name>>num){//輸入一組,處理一組student s = {name,num};Input.push_back(s);//用一個(gè)結(jié)構(gòu)體數(shù)組來接收輸入的學(xué)生信息即可//.... }2.字符串
2.1 給定字符串,進(jìn)行相關(guān)處理
//給定字符 char ch; cin>>ch;//方式一while(cin.get(ch)) {//方式二 } //給定字符串 string input; getline(cin,input);//方式一 cin>>input;//方式二while(方式一/方式二)//方式三 //還是推薦用方式三的輸入方式,不容易出錯(cuò),字符串的一些題目用方式一和方式二可能會(huì)出錯(cuò)(由于輸入格式的問題) while(cin>> ch) {} while(cin>>input) {}2.2 給定不止一組字符串,告知大小
//舉個(gè)例子,先輸入一個(gè)數(shù)表示有多少個(gè)字符串,再輸入每個(gè)字符串,根據(jù)字符串長(zhǎng)度排序 int N;//定義數(shù)量 string temp;//字符串變量 while(cin>>N){//輸入數(shù)量vector<string> input;//存儲(chǔ)所有的字符串for(int i=0;i<N;i++){cin>>temp;//輸入字符串input.push_back(temp);//保存} } //下面是另一種不安全的寫法 int N;//定義數(shù)量 cin>>N;//輸入數(shù)量 string temp;//字符串變量 vector<string> input;//存儲(chǔ)所有的字符串 for(int i=0;i<N;i++){cin>>temp;//輸入字符串input.push_back(temp);//保存 } //以該例題為例,可能在本地IDE能得到正確答案,但如果是牛客網(wǎng)系統(tǒng),由于輸入格式的問題,這樣寫編譯會(huì)通過,就是得不到正確答案2.3 給定不止一組字符串,不告知大小
輸入一組字符串,不告知大小,仍然以上個(gè)例子舉例,不告訴你有多少字符串,這樣就不能根據(jù)數(shù)量來用for循環(huán)做了,但可以用while循環(huán)處理
string temp;//字符串變量 vector<string> input;//存儲(chǔ)所有的字符串 while(cin>>temp){//輸入數(shù)量input.push_back(temp);//保存//... }輸出
cpp的輸出cout與輸入cin一樣都是用流來控制的,cin和cout都在iostream這個(gè)頭文件中,命名空間為std,因此使用的時(shí)候都要加上頭文件和命名空間。
輸出相對(duì)來說簡(jiǎn)單一些,不會(huì)出現(xiàn)輸入的一些問題,相反,cout輸出有時(shí)候還可以幫助你解決題目,一下列舉一些常見輸出語句:
//輸入一個(gè)數(shù)字再輸出 int num;//定義 cin>>num;//輸入 cout<<num<<endl;//輸出并且換行//輸入一個(gè)字符串再輸出 string input;//定義 cin>>input;//輸入 cout<<input<<endl;//輸出并且換行//輸入輸出多個(gè)數(shù)據(jù) int num1,num2; string s1,s2; cin>>num1>>s1; cin>>num2>>s2; cout<<num1<<s1<<' '<<num2<<s2<<endl;總結(jié)
- 上一篇: 诸神之战|福建赛区圆满收官,IP“论剑”
- 下一篇: 用平均的方法去除噪声