亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大佬們,求解答關于scanf("%*c%*[^\n]")的問題?

大佬們,求解答關于scanf("%*c%*[^\n]")的問題?

青春有我 2021-02-16 15:07:26
請教這個表達式什么意思,詳細的說明一下哦,謝謝!
查看完整描述

3 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

scanf("%[^\n]%*c",str)
表示讀入一行字符串。
^表示"非",[^\n]表示讀入換行字符就結束讀入。
*表示該輸入項讀入后不賦予任何變量,即scanf("%*[^\n]%*c")表示跳過一行字符串。
^可以看作是運算符

查看完整回答
反對 回復 2021-03-16
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

scanf("%*c%*[^\n]");這條語句中%*c表示, 讀入一個字符,但是這個字符不保存到變量里,所以后面不需要有對應的char型的參數。%*[^\n]表示讀入一個字符串,字符串里的字符只能是由[]里指定的字符,并且這個字符串也不保存。假如是%*[abcd], 只能輸入abcd所組成的字符串,如aabbddcc,如果遇到其他字符,scanf函數就會返回。這里是%*[^\n], ^表示“非”的意思, \n是換行, %*[^\n]表示讀入所有不是換行的字符。所以 scanf("%*c%*[^\n]");表示,讀入一個字符,再讀入一串不是換行的字符,這些都不保存,然后返回。其實就是,跳過一行的意思。你這個程序的輸入,可能是這樣的:21 2 abcd3 4 xxxxxxxxxscanf("%d",&k);讀入了k,使k成了2,scanf("%d\n%d",&n,&win);讀入了n和win,它們分別是1,2,這時候,后面的abcd用不著了,使用scanf("%*c%*[^\n]");跳過去。然后繼續讀入scanf("%d\n%d",&n,&win),使n=3,win=4,這時,再使用scanf("%*c%*[^\n]");跳過后面的xxxxxxxxx

查看完整回答
反對 回復 2021-03-16
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

int k,i,n,win;意思是定義整形變量scanf("%d",$k);接收屏幕輸入的數字,并保存到k變量中for(i=1;i<=k;i++)循環從i=1開始,直到i<=k的值為止,每次I自增1scanf("%d\n%d",&n,&win)從屏幕中接受兩個數據并保存到變量n和win中。scanf(“%*C%*[^\n]”)從屏幕中接受字符串if(win==0) printf("wind\n")如果win的值為0則輸出字符串wind否則輸出字符串lolanv

查看完整回答
反對 回復 2021-03-16
  • 3 回答
  • 0 關注
  • 368 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號