您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C++中如何使用cin”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C++中如何使用cin”這篇文章吧。
在C++中一般使用
cin
來進(jìn)行交互,獲取用戶輸入信息。cin是C++編程語言中的標(biāo)準(zhǔn)輸入流對象
,即stream類
的對象。cin主要用于從標(biāo)準(zhǔn)輸入讀取數(shù)據(jù),這里的標(biāo)準(zhǔn)輸入,指的是終端的鍵盤。主要用到有cin >>
、cin.get()
、cin.getline()
。cin讀取數(shù)據(jù)也是從緩沖區(qū)
中獲取數(shù)據(jù),緩沖區(qū)為空時,cin的成員函數(shù)會阻塞等待數(shù)據(jù)
的到來,一旦緩沖區(qū)中有數(shù)據(jù),就觸發(fā)cin的成員函數(shù)去讀取數(shù)據(jù)
。
支持
連續(xù)
讀取,以Tab、空格
為分隔符,換行符
為結(jié)束符號;
/*---------------------------------------------------------------------- > File Name: cinDemo01.cpp > Author: Jxiepc > Mail: Jxiepc > Created Time: Mon 20 Sep 2021 10:09:55 AM CST ----------------------------------------------------------------------*/ #include<iostream> #include<unistd.h> #include<cstring> int main(int argc, char *argv[]){ std::string s; while(std::cin >> s){ std::cout << s << std::endl; } return 0; }
當(dāng)
cin>>
從緩存區(qū)讀取數(shù)據(jù)時,會自動忽略作為第一個字符存在的Tab、空格(Space)、換行
,繼續(xù)讀取下一個字符,若緩存區(qū)為空
,則等待
。但是如果讀取成功
,字符后面的分隔符是殘留在緩沖區(qū)
的,cin>>不做處理。
讀取
字符
,包含空格
;
/*---------------------------------------------------------------------- > File Name: cinGetDemo.cpp > Author: Jxiepc > Mail: Jxiepc > Created Time: Mon 20 Sep 2021 10:20:59 AM CST ----------------------------------------------------------------------*/ #include<iostream> #include<unistd.h> #include<cstring> #include<fstream> void test02(){ char str[256]; std::cout << "Enter the name of an existing text file: "; std::cin.get (str,256); // get c-string std::ifstream is(str); // open file char c; while (is.get(c)) // loop getting single characters std::cout << c; is.close(); // close file } void test01(){ char a,b; a = std::cin.get(); std::cout << "a:" << a <<std::endl; std::cin.get(b); std::cout << "b:" << b << std::endl; } int main(int argc, char *argv[]){ std::cout << "測試字符..." << std::endl; test01(); std::cout << "--------------------------------------" << std::endl; //sleep(1); //std::cout << "測試get讀取文件" << std::endl; //test02(); return 0; }
int get(); istream& get(char&c); /* * @func:- 單個字符; * - 不會忽略分隔符; * - 成功讀取的時候則返回字符的ASCII碼值,遇到文件結(jié)束符時則返回EOF(-1); */ istream& get (char* s, streamsize n); istream& get (char* s, streamsize n, char delim); /* * @func: - 從在流提取C-串,直到(n-1)字符已被提取或定界字符結(jié)束。('\n')或DELIM(自定義)。 * - 若找到定界符則不會從輸入序列中提取,并保留作為從流中提取的下一個字符。 * - 如果n大于0,即使提取的是空字符串,也會自動添加一個空字符('\0')到寫入序列。 * @param s:接收字符串; * @param n:- 寫入s的最大字符數(shù)(包括終止空字符); * - 若小于2,則函數(shù)不提取任何字符并設(shè)置failbit; * - Streamsize是一種帶符號的整型。 * @param delim:自定義結(jié)束符。 */ istream& get(streambuf&sb); istream& get (streambuf& sb, char delim); /* * @func:- 從流中提取字符,并將其插入到輸出序列流緩沖區(qū)對象控制的某人,('\n')或DELIM(自定義)。 * - 只有成功插入的字符才會從流中提取。分隔字符,還是最終未能插入的字符,保留在那里作為下一個要從流中提取的字符。 */
從標(biāo)準(zhǔn)輸入設(shè)備讀取一串字符串,并以指定的結(jié)束符結(jié)束。
/*---------------------------------------------------------------------- > File Name: cinGetlineDemo.cpp > Author: Jxiepc > Mail: Jxiepc > Created Time: Mon 20 Sep 2021 11:08:17 AM CST ----------------------------------------------------------------------*/ #include<iostream> #include<unistd.h> #include<cstring> void test01(){ char name[200]; std::cout << "請輸入:" ; std::cin.getline(name, 200); std::cout << name << std::endl; } int main(int argc, char *argv[]){ test01(); return 0; }
函數(shù)介紹
istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim ); /* * @func:- 從流中提取字符作為未格式化的輸入,并將它們以c字符串的形式存儲到s中,直到提取的字符成為分隔符,或者有n個字符被寫入s中(包括結(jié)束的空字符); * - 如果到達(dá)文件結(jié)束符,該函數(shù)也將停止提取字符; * - 若n大于0,提取到空串,也會自動添加一個空字符('\0')到寫入序列。 * @param s:指向字符數(shù)組的指針,在該數(shù)組中提取的字符存儲為c字符串; * @param n:寫入s的最大字符數(shù)(包括終止空字符); * @param delim:結(jié)束符; */
以上是“C++中如何使用cin”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。