本文目錄一覽:
- 1、C語言的scanf語句格式
- 2、C語言中的Scanf的用法
- 3、用C語言編寫scanf函數的代碼:鍵盤輸入3個整數分別給到變數a、b、c?
- 4、C語言scanf
- 5、C語言scanf語句
- 6、C語言 scanf
C語言的scanf語句格式
例:使用scanf函數輸入數據。
#include stdio.h
int main(void)
{
int a,b,c;
printf(“Give me the value of a,b,c seperated with whitespaces:\n”);
scanf(“%d%d%d”,a,b,c);
printf(“a=%d,b=%d,c=%d\n”,a,b,c);
return 0;
}
a,b,c中的是定址操作符,a表示對象a在內存中的地址 [3] ,是一個右值。變數a,b,c的地址是在編譯階段分配的(存儲順序由編譯器決定)。
這裡注意:如果scanf中%d是連著寫的如「%d%d%d」,在輸入數據時,數據之間不可以用逗號分隔。
只能用空白字元(空格或tab鍵或者回車鍵)分隔——「2 (空格)3(tab) 4」 或 「2(tab)3(回車)4」等。若是「%d,%d,%d」,則在輸入數據時需要加「,」,如「2,3,4」。
(在有一些實現中,printf函數與scanf函數在使用時可以不使用預編譯命令#include stdio.h。)它是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。
scanf 是 scan format 的縮寫,意思是格式化掃描,也就是從鍵盤獲得用戶輸入,和 printf 的功能正好相反。
擴展資料:
scanf函數使用注意問題:
(1)在高版本的 Visual Studio 編譯器中,scanf 被認為是不安全的,被棄用,應當使用scanf_s代替 scanf。
(2) 對於字元串數組或字元串指針變數,由於數組名可以轉換為數組和指針變數名本身就是地址,因此使用scanf()函數時,不需要在它們前面加上””操作符。
(3) 可以在格式化字元串中的”%”各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。
(4) scanf函數中沒有類似printf的精度控制。
如: scanf(“%5.2f”,a); 是非法的。不能企圖用此語句輸入小數為2位的實數。
(5) scanf中要求給出變數地址,如給出變數名則會出錯
如 scanf(“%d”,a);是非法的,應改為scanf(“%d”,a);才是合法的。
(6) 在輸入多個數值數據時,若格式控制串中沒有非格式字元作輸入數據之間的間隔,則可用空格,TAB或回車作間隔。
C編譯在碰到空格,TAB,回車或非法數據(如對「%d」輸入「12A」時,A即為非法數據)時即認為該數據結束。
(7) 在輸入字元數據(%c)時,若格式控制串中無非格式字元,則認為所有輸入的字元均為有效字元。
參考資料來源:百度百科-scanf
C語言中的Scanf的用法
scanf 函數最主要的用法是:
scanf(“輸入控制符”, 輸入參數);
函數原型:int scanf(const char * restrict format,…);
函數 scanf() 是從標準輸入流stdin (標準輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
擴展資料:
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
發展:
使用scanf函數進行輸入,必須指定輸入的數據的類型和格式,不僅繁瑣複雜,而且很容易出錯。C++保留scanf只是為了和C兼容。
以便過去用C語言寫的程序可以在C++的環境下運行。C++的編程人員都願意使用cin進行輸入,很少使用scanf。
但是scanf有一個明顯的優點,速度比cin函數快。
參考資料:
百度百科-scanf (計算機語言函數)
用C語言編寫scanf函數的代碼:鍵盤輸入3個整數分別給到變數a、b、c?
#includestdio.h
int main()
{ int a,b,c;
scanf(“%d%d%d”,a,b,c);
printf(“a=%d b=%d c=%d\n”,a,b,c);
return 0;
}
C語言scanf
它實際上輸出的是s4空格
因為你的輸入scanf(“%c%d%c”,a,b,c);中最後一個c是字元,所以,c接收的是4後面輸入的空格,你可以去掉輸出的回車,然後在最後加一句printf(“”);就可以看出空格輸出了。
C語言scanf語句
scanf()是C語言標準庫中的輸入函數,聲明包含在stdio.h文件中,因此要使用該函數,必須載入#includestdio.h頭文件。當執行到scanf函數時,程序就暫停等待用戶輸入,該函數只接受變數的地址,格式為變數名。是一個阻塞式的函數,等用戶輸入完畢後,則將值賦值給變數,至此函數調用完畢。敲回車鍵告知計算機鍵入完畢。
函數原型:int scanf(const char *format,…);
說明:scanf() 是從標準輸入流stdio (標準輸入設備,一般是鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
其調用形式為: scanf(“格式說明字元串”,變數地址);變數地址要求有效,並且與格式說明的次序一致。
使用示例:
//使用scanf函數輸入一個字元變數。
char a;
scanf(「%c」,a);
//同時輸入多個值。
scanf(「%d,%d」,num1,num2);
//在內部不能使用\n轉義字元,否則沒完沒了。
scanf(「%d\n」,a);
注意:在這裡兩個佔位符之間是,隔開,則要求在輸入時也使用逗號隔開如輸入1,2。此時為num1=1,num2=2。若內部為「%d#%d」則輸入1#2。若內部為「%dy%d」,則輸入1y2。如果中間的字元是空格,則在輸入時可以用空格隔開,也可以敲tab鍵或者是回車鍵作為分隔符隔開,後兩者可以看做是由空格組成的。
擴展:格式說明符
轉換字元(就是%後跟的部分)
a 讀浮點值(僅適用於 C++)
A 讀浮點值(僅適用於 C++)
c 讀單字元
d 讀十進位整數
i 讀十進位、八進位、十六進位整數
e 讀浮點數
E 讀浮點數
f 讀浮點數
F 讀浮點數(僅適用於 C++)
g 讀浮點數
G 讀浮點數
o 讀八進位數
s 讀字元串
x 讀十六進位數
X 讀十六進位數
p 讀指針值
n 至此已讀入值的等價字元數
u 讀無符號十進位整數
[ ] 掃描字符集合
% 讀 % 符號(百分號)
附加格式說明字元表修飾符說明
L/l 長度修飾符 輸入”長”數據
h 長度修飾符 輸入”短”數據
W 整型常數 指定輸入數據所佔寬度
* 表示本輸入項在讀入後不賦值給相應的變數
C語言 scanf
接收用戶輸入,賦值給整數變數a
scanf(“%d”, a)
%是格式化輸出符號,後面接輸出格式 對應變數類型選擇
%d整型輸出,%ld長整型輸出,
%o以八進位數形式輸出整數,
%x以十六進位數形式輸出整數,
%u以十進位數輸出unsigned型數據(無符號數)。
%c用來輸出一個字元,
%s用來輸出一個字元串,
%f用來輸出實數,以小數形式輸出,
%e以指數形式輸出實數,
%g根據大小自動選f格式或e格式,且不輸出無意義的零
scanf可有多個參數,
返回值0表示成功讀入參數的個數
返回值=0表示未成功讀入
返回值=EOF表示遇到錯誤或遇到end of file
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306598.html