⑴ c語言中scanf、getchar等輸入函數接收空格、回車符的是
scanf函數族在用%c接受輸入時要接收空格和回車。%s時接受空格。
getchar函數族接受所有字元包括回車。
⑵ c語言怎樣接受按行輸入的一段用空格分開的數字
在 scanf 中,從鍵盤輸入的一切數據,不管是數字、字母,還是空格、回車、Tab 等字元,都會被當作數據存入緩沖區。存儲的順序是先輸入的排前面,後輸入的依次往後排。按回車鍵的時候 scanf 開始進入緩沖區取數據,從前往後依次取。但 scanf 中 %d 只識別「十進制整數」。對 %d 而言,空格、回車、Tab 鍵都是區分數據與數據的分隔符。當 scanf 進入緩沖區中取數據的時候,如果 %d 遇到空格、回車、Tab 鍵,那麼它並不取用,而是跳過繼續往後取後面的數據,直到取到「十進制整數」為止。對於被跳過和取出的數據,系統會將它從緩沖區中釋放掉。未被跳過或取出的數據,系統會將它一直放在緩沖區中,直到下一個 scanf 來獲取。但是如果 %d 遇到字母,那麼它不會跳過也不會取用,而是直接從緩沖區跳出。
來自網頁鏈接
⑶ C語言中用scanf()和fscanf()讀取空格
scanf和fscanf函數是不能讀空格和回車符的,在讀取的時候會自動過濾掉這些分隔符。
要想讀空格,必須用gets函數,在string.h中有定義,需要實現include它。
gets的用法:
chara[10];
gets(a);
c++下也可以用getline函數,不過建議VC用戶不要用,因為微軟的C++編譯器有個經典的getlinebug.在緩沖的時候會多緩沖一行。
⑷ c語言問題 char a[10]; scanf("%s",a);//(1) puts(a);//(
scanf函數
把空格、回車、TAB等看成輸入項的分隔標志,引起當前輸入項輸入終止,也就是說scanf函數不能接收空格、回車、TAB等字元。所以輸入a
b時,實際接收的字元只有a,所以得到結果1(字元串長度為1)
puts函數可以接收空格。所以輸入a
b時,實際接收的字元為a
b,所以得到結果3(字元串長度為3)。
⑸ C語言如何輸入一行有空格的字元串
C語言輸入一行有空格的字元串的方法:
1、對於char
char s[100];
cin.getline(s,1000);//第二個參數表示允許輸入的最大長度while(cin.getline(s,1000));
輸入輸出樣例
輸入:He llo
輸出:He llo
2、對於string
string s;
getline(cin,s);while(getline(cin,s));
輸入輸出樣例
輸入:He llo
輸出:He llo
(5)c語言什麼能接收空格擴展閱讀:
字元串主要用於編程,概念說明、函數解釋、用法詳述見正文,這里補充一點:字元串在存儲上類似字元數組,所以它每一位的單個元素都是可以提取的,如s=「abcdefghij」,則s[1]=「a」,s[10]="j",而字元串的零位正是它的長度。
這可以給我們提供很多方便,高精度運算時每一位都可以轉化為數字存入數組。
字元串或串(String)是由數字、字母、下劃線組成的一串字元。一般記為 s=「a1a2···an」(n>=0)。它是編程語言中表示文本的數據類型。在程序設計中,字元串(string)為符號或數值的一個連續序列,如符號串(一串字元)或二進制數字串(一串二進制數字)。
通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。
兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。
⑹ 在C語言中,字元數組能不能接受中間帶空格的字元串
//可以的.
#include <stdio.h>
#include <stdlib.h>
#define SZIEOFTEXT 5
void main()
{
char szText [] = "A B";
char text[SZIEOFTEXT] = {0};
int i = 0;
while ((szText[i] != '\0'))
{
text[i] = szText[i];
++i;
}
printf("the string is:\n%s\n",szText);
printf("the text is:\n");
for (i=0; i<SZIEOFTEXT; ++i)
{
printf("%c",text[i]);
}
printf("\n");
}
⑺ c語言裡面gets(a)是什麼意思
c語言里gets(a) 表示輸入一個字元串到數組a,a表示讀取一個字元串存入a中,字元串輸入結束標志為換行符。
比如 輸入321 cs dd回車
a中存儲為 321 cs dd
(7)c語言什麼能接收空格擴展閱讀:
gets函數相關知識:
1、注意事項:gets從標准輸入設備讀字元串函數,其可以無限讀取,不會判斷上限,以回車結束讀取,所以編程時應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。
2、功能:從stdio流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『 』空字元,並由此來結束字元串。
3、返回值:讀入成功,返回與參數buffer相同的指針;讀入過程中遇到EOF(End-of-File)或發生錯誤,返回NULL指針。所以在遇到返回值為NULL的情況,要用ferror或feof函數檢查是發生錯誤還是遇到EOF。
⑻ C語言中,gets能接收空格和tab吧函數的間接調用和嵌套調用一樣嗎
gets是讀一行,可以接收空格和tab。
函數的間接調用和嵌套調用一樣嗎?
不一樣。
舉個例子,你就明白了。
void f1(int n)
{
}
void f2()
{
f1(1);
}
void f3()
{
f2();
}
以上是嵌套調用,f3調用f2,f2又調用f1。
void fun()
{
void (*ptfun)();
ptfun=f2;
ptfun();//間接調用f2
ptfun=f3;
ptfun();//間接調用f3
}
⑼ c語言 gets scanf
是這樣的:你在輸入b的值「2」的時候,要結束b的輸入,就會用到ENTER鍵,而這個鍵對應的值雖然不會被讀取,但是它會進入緩存區,然後程序執行到GETS(c)時,緩存區的ENTER值就會被讀取,並賦給C,然後你又結束輸入,再輸入D,於是你運行的結果應該是:
a=1
b=2
c=
d=3
是不是?