c語言中 符號的用法你知道嗎?下面我就跟你們詳細介紹下c語言中 符號的用法,希望對你們有用。
我們提供的服務有:成都做網站、成都網站制作、成都外貿網站建設、微信公眾號開發、網站優化、網站認證、瑪多ssl等。為上1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的瑪多網站制作公司
c語言中 符號的用法如下:
1、cin
用法1:最基本,也是最常用的用法,輸入一個數字:
#include iostream
using namespace std;
main ()
{
int a,b;
cinab;
couta+bendl;
}
輸入:2[回車]3[回車]
輸出:5
注意: 是會過濾掉不可見字符(如 空格 回車,TAB 等)
cinnoskipwsinput[j];//不想略過空白字符,那就使用 noskipws 流控制
用法2:接受一個字符串,遇“空格”、“TAB”、“回車”都結束
#include iostream
using namespace std;
main ()
{
char a[20];
cina;
coutaendl;
}
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkljkl jkljkl ? ? ? //遇空格結束
輸出:jkljkl
2、cin.get()
用法1: cin.get(字符變量名)可以用來接收字符
#include iostream
using namespace std;
main ()
{
char ch;
ch=cin.get(); ? ? ? ? ? ? ? //或者cin.get(ch);
coutchendl;
}
輸入:jljkljkl
輸出:j
用法2:cin.get(字符數組名,接收字符數目)用來接收一行字符串,可以接收空格
#include iostream
using namespace std;
main ()
{
char a[20];
cin.get(a,20);
coutaendl;
}
輸入:jkl jkl jkl
輸出:jkl jkl jkl
輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字符)
輸出:abcdeabcdeabcdeabcd ? ? ? ? ? ? ?(接收19個字符+1個'\0')
用法3:cin.get(無參數)沒有參數主要是用于舍棄輸入流中的不需要的字符,或者舍棄回車,彌補cin.get(字符數組名,接收字符數目)的不足.
這個我還不知道怎么用,知道的前輩請賜教;
3、cin.getline() ? // 接受一個字符串,可以接收空格并輸出
#include iostream
using namespace std;
main ()
{
char m[20];
cin.getline(m,5);
coutmendl;
}
輸入:jkljkljkl
輸出:jklj
接受5個字符到m中,其中最后一個為'\0',所以只看到4個字符輸出;
如果把5改成20:
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jklf fjlsjf fjsdklf
輸出:jklf fjlsjf fjsdklf
//延伸:
//cin.getline()實際上有三個參數,cin.getline(接受字符串的看哦那間m,接受個數5,結束字符)
//當第三個參數省略時,系統默認為'\0'
//如果將例子中cin.getline()改為cin.getline(m,5,'a');當輸入jlkjkljkl時輸出jklj,輸入jkaljkljkl時,輸出jk
當用在多維數組中的時候,也可以用cin.getline(m,20)之類的用法:
#includeiostream
#includestring
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i3;i++)
{
cout"\n請輸入第"i+1"個字符串:"endl;
cin.getline(m,20);
}
coutendl;
for(int j=0;j3;j++)
cout"輸出m["j"]的值:"m[j]endl;
}
請輸入第1個字符串:
kskr1
請輸入第2個字符串:
kskr2
請輸入第3個字符串:
kskr3
輸出m[0]的值:kskr1
輸出m[1]的值:kskr2
輸出m[2]的值:kskr3
4、getline() ? ? // 接受一個字符串,可以接收空格并輸出,需包含“#includestring”
#includeiostream
#includestring
using namespace std;
main ()
{
string str;
getline(cin,str);
coutstrendl;
}
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jfksldfj jklsjfl
輸出:jkl jfksldfj jklsjfl
和cin.getline()類似,但是cin.getline()屬于istream流,而getline()屬于string流,是不一樣的兩個函數
注意:在使用getline時有一個奇怪的現象,在vc6下, 要打兩次回車才可以結束
5、gets() ? ? ? ?// 接受一個字符串,可以接收空格并輸出,需包含“#includestring”
#includeiostream
#includestring
using namespace std;
main ()
{
char m[20];
gets(m); ? ? ? ? ? ? ? ? ? ? ? //不能寫成m=gets();
coutmendl;
}
輸入:jkljkljkl
輸出:jkljkljkl
輸入:jkl jkl jkl
輸出:jkl jkl jkl
類似cin.getline()里面的一個例子,gets()同樣可以用在多維數組里面:
#includeiostream
#includestring
using namespace std;
main ()
{
char m[3][20];
for(int i=0;i3;i++)
{
cout"\n請輸入第"i+1"個字符串:"endl;
gets(m);
}
coutendl;
for(int j=0;j3;j++)
cout"輸出m["j"]的值:"m[j]endl;
}
請輸入第1個字符串:
kskr1
請輸入第2個字符串:
kskr2
請輸入第3個字符串:
kskr3
輸出m[0]的值:kskr1
輸出m[1]的值:kskr2
輸出m[2]的值:kskr3
自我感覺gets()和cin.getline()的用法很類似,只不過cin.getline()多一個參數罷了;
這里順帶說明一下,對于本文中的這個kskr1,kskr2,kskr3的例子,對于cin也可以適用,原因是這里輸入的沒有空格,如果輸入了空格,比如“ks kr jkl[回車]”那么cin就會已經接收到3個字符串,“ks,kr,jkl”;再如“kskr 1[回車]kskr 2[回車]”,那么則接收“kskr,1,kskr”;這不是我們所要的結果!而cin.getline()和gets()因為可以接收空格,所以不會產生這個錯誤;
6、getchar() ? //接受一個字符,需包含“#includestring”
#includeiostream
#includestring
using namespace std;
main ()
{
char ch;
ch=getchar(); ? ? ? ? ? ? ? ? ? ? ? ?//不能寫成getchar(ch);
coutchendl;
}
輸入:jkljkljkl
輸出:j
//getchar()是C語言的函數,C++也可以兼容,但是盡量不用或少用;
c++ cin的頭文件是:#includeiostream.h;
iostream.h:標準的輸入輸出流頭文件。用來聲明一些用來在標準輸入輸出設備上進行輸入輸出操作的對象。
iostream.h是input output stream的簡寫,意思為標準的輸入輸出流頭文件。它包含:
(1)cin"要輸入的內容"
(2)cout"要輸出的內容"
這兩個輸入輸出的方法需要#includeiostream來聲明頭文件。
輸入一個值的意思。
cin是C++編程語言中的標準輸入流對象,即istream類的對象。
cin主要用于從標準輸入讀取數據,這里的標準輸入,指的是終端的鍵盤。cin讀取數據是從緩沖區中獲取數據,緩沖區為空時,cin的成員函數會阻塞等待數據的到來,一旦緩沖區中有數據,就觸發cin的成員函數去讀取數據。
cin的常用讀取方法:
使用cin從標準輸入讀取數據時,通常用到的方法有cin,cin.get,cin.getline。
1、cin的用法。
cin可以連續從鍵盤讀取想要的數據,以空格、tab或換行作為分隔符。
2、cin.get的用法。
該函數有有多種重載形式,分為四種格式:無參,一參數,二參數,三個參數。
(1)cin.get讀取一個字符,可以使用cin.get或者cin.get(var)。
(2)讀取一行可以使用istream get ( char* s, streamsize n )或者istream get ( char* s, size_t n, streamsize delim )。二者的區別是前者默認以換行符結束,后者可指定結束符。n表示目標空間的大小。
3、cin.getline讀取一行。
函數作用:從標準輸入設備鍵盤讀取一串字符串,并以指定的結束符結束。
cin 是 c++ 里的標準輸入,即從鍵盤輸入,std::cin. c 語言沒有 cin.
c 語言 用 scanf() 函數,需根據變量類型,加上輸入格式。 例如:
int i,j; char info[20];
scanf("%d %d %s",i, j, info);
1.cin 是個C++類型對象,它的類型是basic_istream,scanf 是個不定參數的函數,
2.cin 所屬的類重載了 運算符,使輸入更簡單了,比如
double d; cind;
而 scanf 不一樣的,
double d;scanf("%lf",d);
看起來麻煩一點。
另外,cin 也更安全,不會發生內存溢出。
char c; scanf("%lf",c); //這時需要8個字節的空間,但只提供一個,內存溢出。
而 cin 也更安全
char c;cinc; //只輸入字符,不會溢出
3.從底層上來說,C++ 的 cin 與 C語言的 scanf 都采用 stdin 作為輸入源, 但cin和scanf 采用了不同的緩沖區,可以通過 ios 頭文件里面的 sync_with_stdio () 函數設置緩沖區共享,使cin和scanf 共享緩沖區。
C++也可以改變輸入源,但這樣很復雜。
其實,C++對 stdin 進行了封裝,用流和迭代器進行了轉變了流的概念而已,而C的scanf直接操作 stdin而已
4.cin
和
scanf
在使用時的注意事項
(注:本文中的源代碼沒有包含頭文件,實驗時請自己編輯。)
請邊看邊操作,這樣才能真正明白其中的竅門:
5.
scanf()
:
常用的有
(1)
scanf("%s",a);//a
為字符串的指針;
例:
int main(){
char a[20];
scanf("%s",a);
printf("%s",a);//
輸出字符串
a
中的字符
return 0;
}
注意
:
1,這種獲得字符串的方法前面可以有回車符
'\n'
,注意哦!你可以試一下。輸入
時在前面猛打回車,然后再輸入一組字符,這樣輸出的還是你輸出的字符。
2.試完了回車,重新運行一下,然后你在前面加
n
個空格,然后再輸入一個連續的
字符,
看看會出現什么?你會發現他把前面的空格全忽略了。
如果你想要,
當然也可以,或
者用正則表達式,或者用
gets();
比如:
gets(a);
這樣,你輸入的空格也能記錄下來了。
3.再試一下
輸入一個連續長度的字符后加一個空格再輸入:
比如輸入一個人的名
字的時候“
Bill
Gates
”你會發現輸出只有
Bill
,而
Gates
見鬼去了。所以名字的輸入和上
面一樣,最好用
gets();
函數。
(2)scanf("%c",a);//
注意取地址符;
例:
int main(){
char a;
scanf("%c",a);
printf("%c",a);//
輸出字符
a
中的字符
return 0;
}
注意:
在獲得字符時如果有回車,
吸收之。
你可以這樣試一下,
運行上面的程序,
回車一次,
仔細觀察他空了幾行。
(第一行是你敲的,第二行是
printf
輸出的
a
的值)
,明白其中的奧妙
了么?
(3)
scanf("%d",a);
例
int main(){
int a;
scanf("%d",a);
printf("%d",a);//
輸出整形
a
中的值;
return 0;
}
注意:這個輸入和(
1
)一樣,會自動忽略前面的回車
'\n'(
其實就是個
ascII
碼
)
是int ungetc(int c,FILE *fp);
該函數將c指定的字符放回輸入流在stdio.h里面
第二個參數不一定是文件可以是標準輸入流即stdin
網頁題目:c語言中cin函數所需包 c語言中有cin嗎
標題來源:http://m.kartarina.com/article18/dodesdp.html
成都網站建設公司_創新互聯,為您提供、小程序開發、標簽優化、域名注冊、網站營銷、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯