Ⅰ 討論:如何利用scanf函數吸收多餘的回車符或者空格符
為啥會有這種想法...
等等,你是指"scanf函數調用後,如何除掉輸入流中的多餘的回車符或者空格符"的話,那當我上面的話沒說... -_-
可以每次在scanf函數調用後立馬調用getchar()
因為fgets是讀入一行(包括空白符和' ')所以不必擔心會有空白符遺漏.
所以...不使用scanf是最好啊...-_-
當然要用又怕麻煩的話你就一直用scanf用到底...這樣就不用擔心會有多餘的空白符了(反正都會被忽略)
Ⅱ scanf用%c的時候可以識別空格嗎
%c前面的空格就是用來屏蔽空白符的。
(scanf()讀入字元串中的空格)
#include<stdio.h>
int main()
{
char a[777];
scanf("%[^/n]",&a);
printf("%s",a);
return 0;
}
(2)scanf過濾空格擴展閱讀:
使用scanf注意事項
1、參數的個數一定要對應
2、輸入的數據類型一定要和所需要的數據類型一致
3、每次調用完scanf後,記得調用一個getchar()函數
函數 scanf() 是從標准輸入流stdio (標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,就是從標准輸入流中或許數據,上面第一個scanf()要讀入一個整數,它從標准輸入流中查找,跳過空白符(空格、換行符、製表符)。
Ⅲ c語言中想要在scanf中 忽略很多空格怎麼辦
用:
scanf("%*d",&a);
加*
Ⅳ c語言中,怎麼忽略輸入字元串中的空格符。
字元串輸入可以用scanf函數和gets函數。scanf函數是當輸入的數據遇到空格就停止。比如輸入數據kkkkkk ssssss sssaa11。用scanf("%s",str);得到的str為"kkkkkk",而空格後面的東西不會賦值給str。而使用gets(str);得到的str為kkkkkk ssssss sssaa11。gets函數是將一整行包括空格都賦值給str。對於你給的例子。main裡面的代碼為:
main()
{
char str[10];
gets(str);
puts(str);
return(0);
}
輸出結果就是a b c。
Ⅳ C語言中用scanf()和fscanf()讀取空格
scanf和fscanf函數是不能讀空格和回車符的,在讀取的時候會自動過濾掉這些分隔符。
要想讀空格,必須用gets函數,在string.h中有定義,需要實現include它。
gets的用法:
chara[10];
gets(a);
c++下也可以用getline函數,不過建議VC用戶不要用,因為微軟的C++編譯器有個經典的getlinebug.在緩沖的時候會多緩沖一行。
Ⅵ C語言中用scanf()和fscanf()讀取空格
scanf和fscanf函數是不能讀空格和回車符的,在讀取的時候會自動過濾掉這些分隔符。
要想讀空格,必須用gets函數,在string.h中有定義,需要實現include它。
gets的用法:
char
a[10];
gets(a);
c++下也可以用getline函數,不過建議VC用戶不要用,因為微軟的C++編譯器有個經典的getline
bug.在緩沖的時候會多緩沖一行。
Ⅶ 在 scanf(" %c,%c,%c",&c1,&c2,&c3);中為什麼加了空格在%c的前面
這是用來過濾空格的。如果是scanf("%c",&a);(無空格)如果輸入是「 x」(有空格)那麼a='\0'(\0就是空格,如同\n是回車)如果是scanf(" %c",&a);(有空格)如果輸入是「 x」(有空格)那麼a='x『(如果加的是\n,同樣的方法可以過濾回車)運用這個技巧可以過濾空格(無空格時也是'x',這就比再來一個記錄空格的變數好得多了)。另外:scanf(" %c,%c,%c",&c1,&c2,&c3);
相鄰的%c之間不用「,」,不然想要的是「,」是會被過濾(如果就是像過濾「,」的話就算了)
Ⅷ 急!!scanf怎樣過濾空格和換行。。。
scanf()函數默認空格、制抄表符、換行符為襲數值、字元和字元串的分隔符,也就是說,是自動過濾的,比如
int val;
char ch,s[50];
scanf("%d%c%s");
可以輸入5 A character
該讀入語句可使val = 5,ch = 'A',s = "character"。
Ⅸ c語言如何在scanf時不用空格
你好。這樣寫就可以了。
char
a,
b,
c;
a
=
getchar();
b
=
getchar();
c
=
getchar();
這樣輸入就不需要空格了。
直接調換字元就可以。如果要轉成整數。可以加上a
=
a
-
'0';
不過一般3位數都保存在一個int變數里。
int
a;
scanf("%d",
&a);
int
b
=
a
/
100;
int
c
=
a
/
10
%
10;
int
d
=
a
%
10;
a
=
d
*
100
+
c
*
10
+
b;
prinf("%d",
a);
這樣也不需要空格。