c語言的scanf
㈠ c語言中的scanf 函數的用法
1、用法:int scanf(char *format[,argument,...]);
scanf()函數是通用終端格式化輸入函數,它從標准輸入設備(鍵盤) 讀取輸入的信息。可以讀入任何固有類型的數據並自動把數值變換成適當的機內格式。
2、其調用格式為:
scanf("<格式化字元串>",<地址表>);
scanf()函數返回成功賦值的數據項數,出錯時則返回EOF。
3、scanf()函數的控制串的使用:
#include "stdio.h"
int main(void)
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d,%d,%d/n",a,b,c);
return 0;
}
(1)c語言的scanf擴展閱讀:
scanf 函數使用中的注意事項:
(1)在高版本的 Visual Studio 編譯器中,scanf 被認為是不安全的,被棄用,應當使用scanf_s代替 scanf。
(2) 對於字元串數組或字元串指針變數,由於數組名可以轉換為數組和指針變數名本身就是地址,因此使用scanf()函數時,不需要在它們前面加上"&"操作符。
(3) 可以在格式化字元串中的"%"各格式化規定符之間加入一個整數,表示任何讀操作中的最大位數。
(4) scanf函數中沒有類似printf的精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企圖用此語句輸入小數為2位的實數。
㈡ C語言中的scanf是什麼意思
scanf()是C語言中的一個輸入函數。
與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include <stdio.h>。(在有一些實現中,printf函數與scanf函數在使用時可以不使用預編譯命令#include <stdio.h>。)
函數 scanf()是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。scanf() 從標准輸入流stdin中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
(2)c語言的scanf擴展閱讀:
scanf()用法舉例:
用scanf輸入一個整數
#include<stdio.h>
int main(){
int num=0;
printf(「請輸入一個個整數」);
scanf(「%d,&num);
printf(「num是%d 」,num);
scanf(「%*[^ ]」);
scanf(「%*c」);//清空緩沖區
printf(「請輸入一個個整數」);
scanf(「%d,&num);
printf(「num是%d 」,num);
return 0;
}
參考資料來源:網路-scanf
㈢ c語言中scanf有什麼作用
C語言中scanf是標准庫函數,主要用來接收用戶輸入的數據。
scanf與printf函數一樣,都被定義在頭文件stdio.h里,因此在使用scanf函數時要加上#include <stdio.h>。它是格式輸入函數,即按用戶指定的格式從鍵盤上把數據輸入到指定的變數之中。
函數格式:int scanf(char *format, args, ...);
功 能:從標准輸入設備按format指定格式輸入數據給args所指向的內存單元;
返 回 值 :讀入並賦給args的數據個數。遇文件結束返回EOF,出錯返回0。
(3)c語言的scanf擴展閱讀
基本特性
1、高級語言:它是把高級語言的基本結構和語句與低級語言的實用性結合起來的工作單元。
2、結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。
C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3、代碼級別的跨平台:由於標準的存在,使得幾乎模式同樣的C代碼可以用於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要進行硬體操作的場合,優於其它高級語言。
4、使用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持。
但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。
一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
㈣ 如何在C語言中用scanf輸入數組
#include
main()
{
struct
{
intnum;
charname[20];
charsex;
intage;
}stu[5];
inti;
for(i=0;i<5;i++)
{
printf("請輸入信息
");
scanf("%d",&stu[i].num);
scanf("%s",&stu[i].name);
scanf("%c",&stu[i].sex);//在%c之前加一個空格
scanf("%d",&stu[i].age);
}
for(i=0;i<5;i++)
{
printf("*%s*",stu[i].name);
}
}
拓展資料
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
㈤ C語言中的Scanf的用法
scanf 函數最主要的用法是:
scanf("輸入控制符", 輸入參數);
函數原型:intscanf(constchar*restrictformat,...);
函數 scanf() 是從標准輸入流專stdin (標准輸入設備屬,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
(5)c語言的scanf擴展閱讀:
函數的第一個參數是格式字元串,它指定了輸入的格式,並按照格式說明符解析輸入對應位置的信息並存儲於可變參數列表中對應的指針所指位置。每一個指針要求非空,並且與字元串中的格式符一一順次對應。
發展:
使用scanf函數進行輸入,必須指定輸入的數據的類型和格式,不僅繁瑣復雜,而且很容易出錯。C++保留scanf只是為了和C兼容。
以便過去用C語言寫的程序可以在C++的環境下運行。C++的編程人員都願意使用cin進行輸入,很少使用scanf。
但是scanf有一個明顯的優點,速度比cin函數快。
㈥ C語言scanf()
有逗號.
你在輸入數據的時候,就必須輸入逗號,
scanf("%d,%d",&a,&b);
應該輸入:
1,2
scanf("%d%d",&a,&b);
這個有點問題吧.
沒試過,一般情況下,是需要在中間加一個空格,
類似這樣scanf("%d
%d",&a,&b);
然後兩個整型以空格為分界.
輸入:
1
2(注:中間有空格)
其實這個是scanf本身的一種對字元串的處理.
具體你可以熟悉一下sprintf
sscanf.
他們的原理都是一樣的.
㈦ C語言的scanf語句格式
例:使用scanf函數輸入數據。
#include<stdio.h>
intmain(void)
{
inta,b,c;
printf("Givemethevalueofa,b,cseperatedwithwhitespaces: ");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d ",a,b,c);
return0;
}
&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 的功能正好相反。
(7)c語言的scanf擴展閱讀:
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