您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C++中如何使用cin”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C++中如何使用cin”這篇文章吧。
在C++中一般使用
cin
來進行交互,獲取用戶輸入信息。cin是C++編程語言中的標準輸入流對象
,即stream類
的對象。cin主要用于從標準輸入讀取數據,這里的標準輸入,指的是終端的鍵盤。主要用到有cin >>
、cin.get()
、cin.getline()
。cin讀取數據也是從緩沖區
中獲取數據,緩沖區為空時,cin的成員函數會阻塞等待數據
的到來,一旦緩沖區中有數據,就觸發cin的成員函數去讀取數據
。
支持
連續
讀取,以Tab、空格
為分隔符,換行符
為結束符號;
/*---------------------------------------------------------------------- > 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; }
當
cin>>
從緩存區讀取數據時,會自動忽略作為第一個字符存在的Tab、空格(Space)、換行
,繼續讀取下一個字符,若緩存區為空
,則等待
。但是如果讀取成功
,字符后面的分隔符是殘留在緩沖區
的,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碼值,遇到文件結束符時則返回EOF(-1); */ istream& get (char* s, streamsize n); istream& get (char* s, streamsize n, char delim); /* * @func: - 從在流提取C-串,直到(n-1)字符已被提取或定界字符結束。('\n')或DELIM(自定義)。 * - 若找到定界符則不會從輸入序列中提取,并保留作為從流中提取的下一個字符。 * - 如果n大于0,即使提取的是空字符串,也會自動添加一個空字符('\0')到寫入序列。 * @param s:接收字符串; * @param n:- 寫入s的最大字符數(包括終止空字符); * - 若小于2,則函數不提取任何字符并設置failbit; * - Streamsize是一種帶符號的整型。 * @param delim:自定義結束符。 */ istream& get(streambuf&sb); istream& get (streambuf& sb, char delim); /* * @func:- 從流中提取字符,并將其插入到輸出序列流緩沖區對象控制的某人,('\n')或DELIM(自定義)。 * - 只有成功插入的字符才會從流中提取。分隔字符,還是最終未能插入的字符,保留在那里作為下一個要從流中提取的字符。 */
從標準輸入設備讀取一串字符串,并以指定的結束符結束。
/*---------------------------------------------------------------------- > 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; }
函數介紹
istream& getline (char* s, streamsize n ); istream& getline (char* s, streamsize n, char delim ); /* * @func:- 從流中提取字符作為未格式化的輸入,并將它們以c字符串的形式存儲到s中,直到提取的字符成為分隔符,或者有n個字符被寫入s中(包括結束的空字符); * - 如果到達文件結束符,該函數也將停止提取字符; * - 若n大于0,提取到空串,也會自動添加一個空字符('\0')到寫入序列。 * @param s:指向字符數組的指針,在該數組中提取的字符存儲為c字符串; * @param n:寫入s的最大字符數(包括終止空字符); * @param delim:結束符; */
以上是“C++中如何使用cin”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。