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