在學習C++時大家肯定迷惑過關於輸入輸出各種輸出函數的功能,現在來總結一下各種函數的簡單用法。
cin建有一個緩沖區,即輸入緩沖區。一次輸入過程是這樣的,當一次鍵盤輸入結束時會將輸入的數據存入輸入緩沖區,而cin函數直接從輸入緩沖區中取數據。正因為cin函數是直接從緩沖區取數據的,所以有時候當緩沖區中有殘留數據時,cin函數會直接取得這些殘留數據而不會請求鍵盤輸入,這就是為什么有時會出現輸入語句失效的原因。
1.cin>>函數的用法:這是我們最經常用,學習C++最初接觸的輸入流。
用法1.接受一個字符串的輸入,遇到“空格”"TAB""回車“結束。
#include <iostream>
using namespace std;
void main ()
{
char a[10];
cin>>a;
cout<<a<<endl;
}
輸入:aaabbbccc
輸出:aaabbbccc
輸入:aaa bbb ccc
輸出:aaa
2.輸入一個數字。
#include <iostream>
using namespace std;
void main ()
{
int a,b;
cin>>a>>b;
cout<<a+b<<endl;
}
輸入:1回車2回車
輸出:3
2.cin.get()的用法,這函數有三種形式,cin.get(),cin.get(char ch),cin.get(array,length)。
用法1.cin.get()
用於讀取一個字符,結束條件是回車,不過不會丟棄緩沖區的回車(enter)和空格,cin.get()和cin.get(char ch)功能基本一樣的,char = cin.get()和cin.get(char ch)共能一樣。
#include<iostream>
using namespace std;
int main()
{
char c,ch;
c = cin.get();
cin.get(ch);
cout<<c<<endl;
cout<<ch<<endl;
return 0;
}
輸入:a回車(輸入一個字符然后接着回車)
輸出:a
(此處有一行)
輸入:abcd回車
輸出:a
b
用法2.cin.get(char ch)用法同用法1
用法3.cin.get(array,length) 接受一個字符串的輸入,接受輸入的length-1個字符,最后一個存入的是‘\0’。
#include<iostream>
using namespace std;
int main()
{
char ch[10];
cin.get(ch,5);
cout<<ch<<endl;
return 0;
}
輸入:abcdefg回車
輸出:abcd
3.cin.getline()的用法,接受一個字符串的輸入包括空格,遇到回車停止。
用法1.cin.getline()
#include<iostream>
using namespace std;
int main()
{
char ch[10];
cin.getline(ch,5);
cout<<ch<<endl;
return 0;
}
輸入:aaaaaaaa
輸出:aaaa
4.getline()函數,接受一個字符串的輸入包含空格,遇到回車停止要包含#incldue<string>。
用法1.getline(cin,sting s)
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s;
getline(cin,s);
cout<<s<<endl;
return 0;
}
輸入:abcdefg回車
輸出:abcdefg
5.gets()函數,接受一個字符串的輸入包含空格,遇到回車停止,要包含#incldue<string>。
用法1:接收一個字符串的輸入。
#include<iostream>
#include<string>
using namespace std;
int main()
{
char ch[10];
gets(ch);
cout<<ch<<endl;
return 0;
}
輸入:abcdefg回車
輸出:abcdefg
6.getchar()接受一個字符輸入,包含空格,遇到回車停止,要包含#incldue<string>。
用法1:接受一個字符的輸入
#include<iostream>
#include<string>
using namespace std;
int main()
{
char ch;
ch = getchar();
cout<<ch<<endl;
return 0;
}
輸入:abc回車
輸出:a