c語言格式化輸入
① c語言中的格式化輸出函數和格式化輸入函數分別是什麼
准確的說,應該是輸出語句,輸入語句,輸出語句是「printf(輸出格式)」,輸入語句是"scanf(輸入格式)"。
② c語言格式輸入輸出函數
一:格式輸出函數printf()
1、調用形式一般為:printf("格式化控制字元串",輸出表列);
2、格式化控制字元串用於指定輸出格式,它有三種形式:
1、格式說明符:規定了相應輸出表列內容的輸出格式,以%打頭,如%d、%o等
2、轉義字元:用來輸出轉義字元所代表的控制代碼或者特殊字元,比如常用的『\n'、『\t'
3、普通字元:需要原樣輸出的字元。
3、輸出表列為若干需要輸出的數據項,它與格式說明符在數量和類型上一一對應;
4、格式字元m指定輸出數據所佔寬度,n對實數表示輸出n位小數,對字元串表示截取的字元個數,+表示右對齊,通常省略。
—表示左對齊,l用於長整型數據,可加在d、o、x、u前,更多格式說明符及其組合形式如下所示:
格式字元
數據對象
輸出形式
數據輸出方法
%(+)-md
int
unsigned
int
short
unsigned
short
char
十進制整數
1、無m按實際位數輸出
2、有m輸出m位;超過m位,按實際位數輸出,不足補空格
3、有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
%(+)-mo
八進制整數
%(+)-mx
十六進制整數
%(+)-mu
無符號整數
%(+)-mld
long
unsigned
long
十進制整數
%(+)-mlo
八進制整數
%(+)-mlx
十六進制整數
%(+)-mlu
無符號整數
%(+)-m.nf
float
double
十進制小數
%(+)-m.ne
十進制指數
%(+)-g
自動選用%f和%e中較短的輸出寬度輸出單、雙精度浮點數
%(+)-mc
char
int
short
單個字元
1、無m輸出單個字元
2、有m輸出m位,補空格
3、有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
%(+)-m.ns
字元串
一串字元
1.無m、n按實際字元串輸出全部字元
2、有m、n僅輸出前n個字元,補空格
3.有+(默認為+)右對齊(左補空格)
4、有-左對齊(右補空格)
二:格式輸入函數scanf()
1、
調用格式一般為:scanf("格式化控制字元串",地址表列);
2、格式化控制字元串和printf()函數含義相似,所不同的是它是對輸入格式進行控制;
3、地址表列是有若乾等待輸入的數據所對應的內存單元地址組成,由逗號隔開,一般形式為&a,a為變數;
4、地址表列在數量和類型上和格式化控制字元串中的格式說明符一一對應;
5、格式字元h表示輸入短型數據,可用在d、o、x前面,m指定輸入數據所佔寬度,
*表示對應的數據項讀入後不賦給相應的變數,更多格式說明符及其組合如下
格式字元
數據對象
輸入形式
數據輸入方法
%md
int
short
unsigned
int
unsigned
short
十進制整數
1、無m按實際位數輸入
2、有m輸入m位,不足m則跟回車鍵
%mo
八進制整數
%mx
十六進制整數
%mld
long
unsigned
long
十進制整數
%mlo
八進制整數
%mlx
十六進制整數
%mlf
float
double
十進制整數
%mle
%mc
char
單個字元
1、無m取單個字元
2、有m輸入m位,僅取第一個字元
%ms
字元串
一串字元
1、無m取回車或空格前若干字元
2、有m僅取前m字元
③ c語言中如何格式化輸入或輸出數據
%d表示輸入或輸出十進制有符號數;%f表示輸入或輸出浮點數(float,四位元組表示);在C語言中輸出不同數據時需要用到不同的格式字元,%d是用來輸出十進制整型數據的實際長度輸出,%f是以小數形式輸出單、雙精度度數。以下是詳細介紹:
1、%d表示輸入或輸出十進制有符號數;
2、%f表示輸入或輸出浮點數(float,四位元組表示);
3、另%lf表述輸入或輸出雙精度浮點數(double 8位元組表示);
4、在輸出不同數據時要用不同的的格式字元,比如說這個%d是用來輸出十進制整型數據的實際長度輸出;%f是以小數形式輸出單、雙精度度數,隱含輸出6位小數;還有很多,如%s(輸出字元串)
④ 在C語言中標准輸入輸出語句應該如何編寫操作
Turbo C 2.0標准庫提供了兩個控制台格式化輸入、輸出函數 scanf();和printf();這兩個函數可以在標准輸入輸出設備上以各種不同的格式讀寫數據。scanf()函數用來從標准輸入設備(鍵盤)上讀數據,printf()函數用來向標准輸出設備(屏幕)寫數據。下面詳細介紹這兩個函數的用法。
1.標准輸入語句
scanf()函數是格式化輸入函數,它從標准輸入設備(鍵盤)讀取輸入的信息。其調用格式為:scanf(<格式化字元串>,<地址表>);
格式化字元串包括以下三類不同的字元;
(1).空白字元:空白字元會使scanf()函數在讀操作中略去輸入中的一個或多個空白字元。
(2).非空白字元:一個非空白字元會使scanf()函數在讀入時剔除掉與這個非空白字元相同的字元。
(3).格式化說明符:以%開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
⑤ C語言中的格式化輸入問題
scanf中的輸入格式是%d%d%d,即三個輸入間用空白符分隔
而題目中的輸入格式是25,13,10<CR>,中間用逗號分隔,結果導致只有x被正常賦值,yz的值都是未知的垃圾值
結果自然史不確定值
⑥ C語言中%f是指什麼%f指哪些
%f用於格式化輸入輸出函數,用來格式化輸入輸出float(單精度浮點數)類型數據。
1、格式化輸入函數,包括scanf, fscanf, sscanf, vscanf, vsscanf,vfscanf等。當%f用於格式化輸入函數時,後續對應位置應傳入一個float類型變數的地址。
不同的格式化輸入函數,只是源不同,功能都是從源中,按照格式讀取數據存到變數中,當指定%f格式時,會嘗試讀取一個浮點數,存到對應參數地址中。
2、格式化輸出函數,包括printf, fprintf, sprintf, vprintf, vsprintf,vfprintf等。當%f用於格式化輸出函數時,後續對應位置應傳入一個float類型變數的值。
區分函數不同, 會將對應的float變數值,格式化輸出到對應的目標上。
默認%f會輸出6位小數。
3、代碼舉例:
#include<stdio.h>
intmain()
{
floata;//定義變數。
scanf("%f",&a);//讀入數據。
printf("getfloat:%f ",a);//輸出讀入的數據。
return0;
}
運行示例:
輸入
1.23
輸出
1.230000
4、注意事項:
在使用%f輸入時,必須傳入float類型的地址,否則會出錯。
而用%f輸出時,可以傳入float或者double的值。 如果傳入為double,函數會自動強制轉換為float類型輸出。
⑦ C語言中的格式化輸出函數和格式化輸入函數分別是什麼
格式化輸出函數指的是printf(),用來在屏幕上列印輸出字元串和變數等內容
格式化輸入函數指的是scanf(),其功能是實現和用戶的交互,由用戶輸入相應的值然後給變數
下面是個判斷一個數有幾位的一段代碼,希望能幫助到你
⑧ C 字元串和格式化輸入與輸出
1.前導程序
2.關於字元串
(1)字元串是一個或多個字元的序列。如"I am a student!"。
(2)C語言用空字元來標記一個字元串的結束。數組的單元數必須至少比要存儲的字元數多1。
(3)字元串和字元。'x'和"x"的區別(後者是一個字元串由'x'和'\0'組成)。
(4)Sizeof()和strlen()函數。
同一個字元串,sizeof()把標志字元串結尾的空字元計算在內,長度比strlen()大1.
strlen()以 字元 為單位給出字元串的長度。sizeof()給出數組的長度(分配的內存單元)。
獲取一個類型大大小~獲取一個具體量的大小。sizeof(char)和sizeof (name)=sizeof name。
sizeof()和strlen()
3.常量和C預處理器
(1)常量如0.015。float taxrate=0.015。把常量0.015賦值給變數taxrate,但程序可能意外的改變它的值。
(2)兩種方法const修飾符和#define預處理命令
const int MONTHS=12;
#define MONTHS +12;(#define TEE 'T')(#define OOPS "Now you have it!")
4.printf()函數
(1)printf():(「控制描述"+變數列表)~(變數使用的是值,無論該值是變數、常量、還是表達式)。
(2)printf()轉換說明符:%c--一個字元、%d--有符號十進制整數、%e--浮點數e記數法、%、f--浮點數十進制、%p--指針、%%--列印一個%、%s--字元串...:
請避免不匹配的轉換。
(3)printf()標志符:-(左對齊)、+(帶符號)、#(...)、0(對所有數字格式,用前導0填充欄位寬度)
列印一個字元串的前8個字元,欄位寬度為8字元(%8.8s)
列印雙引號\"....\"
列印一個欄位寬度在參數列表中給定的八進制整數(%*0).
%5d(00006)
指定固定欄位寬度(有效防止溢出)
(4)用printf()列印較長的字元串
a.採用多個printf()函數;
b.在一個printf()中採用(\)和回車鍵
c.採用字元串連接方法("Hello""world")
(5)printf()的函數返回值(返回所列印字元的數目,如果輸出有誤則返回-1,常用於檢查輸出錯誤。向文件中而非屏幕)
5.scanf()函數
(1)scanf()會在遇到第一個空白字元空格、製表符、或者換行符處停止讀取。~gets()函數可以用來讀取一個字元串。
(2)讀取變數類型的值加&,把字元串讀進一個字元數組不使用&。
(3)scanf("%d,%d",&n,&m)接受輸入 1,2 {scanf("%c",&ch)讀取在輸入中遇到的第一個字元}
6.關於修飾符*
printf()中在欄位寬度部分使用*來代替數字
scanf()中*使函數跳過相應的輸出項目(scanf("%*d%*d%d",&n);前兩個跳過)
⑨ c語言格式化輸入輸出和非格式化輸入輸出的區別
printf()函數是格式化輸出函數,
一般用於向標准輸出設備按規定格式輸出
信息。在編寫程序時經常會用到此函數。printf()函數的調用格式為:
printf("<格式化字元串>",
<參量表>);
其中格式化字元串包括兩部分內容: 一部分是正常字元, 這些字元將按原
樣輸出; 另一部分是格式化規定字元,
以"%"開始, 後跟一個或幾個規定字元,
用來確定輸出內容格式。
參量表是需要輸出的一系列參數,
其個數必須與格式化字元串所說明的輸出
參數個數一樣多, 各參數之間用","分開, 且順序一一對應, 否則將會出現意想
不到的錯誤。
非格式化輸入輸出函數可以由上面講述的標准格式化輸入輸出函數代替, 但
這些函數編譯後代碼少, 相對佔用內存也小, 從而提高了速度,
同時使用也比較
方便。puts()函數用來向標准輸出設備(屏幕)寫字元串並換行,
其調用格式為:
puts(s);
其中s為字元串變數(字元串數組名或字元串指針)。
puts()函數的作用與語printf("%s\n",
s)相同。
例4:
main()
{
char s[20], *f;
strcpy(s, "Hello! Turbo
C2.0");
f="Thank you";
puts(s);
puts(f);
}
說明:
(1).
puts()函數只能輸出字元串, 不能輸出數值或進行格式變換。
(2). 可以將字元串直接寫入puts()函數中。如:
puts("Hello,
Turbo C2.0");
⑩ C語言格式化輸入輸出(關於日期)
寫下這篇文章,主要是記載自己的學習心得,同時也分享給所有正在學習c語言的小白們。
關於日期的輸出呢,看起來是挺簡單的,但當題目要求輸入比如:2019--10--01或者2019--09--10,正在學習c語言的人(包括我)就會卡在這,如何將1~9的「0」一起輸出呢?
其實很簡單,這里巧用「0」,既然題目說到0n(n代表1~9月或者日期),那我們肯定要用到「0」呀,那這個「0」該放哪呢,又是個問題。
但不用慌,想想我們之前的輸出,就應該知道這個「0」應該這樣 printf("%02d",&n);, 而那個2怎麼來的呢,就是代表整個寬度為2(因為月份,日期最大占兩位數),即%04d表示在輸出一個小於4位的數值時,將在前面補0使其總寬度為4位。
因此,在日期時應該: printf("%d %02d %02d",year,month,day);
下面直接放題:
按 yyyy/mm/dd 形式從鍵盤輸入一個日期,按yyyy--mm--dd 形式輸出該日期,其中 yyyy, mm, dd 分別表示年、月、日。
輸入:
2019/10/01
輸出:
2019--10--01
#include<stdio.h>
int main()
{
int year,month,day;
scanf("%d/%d/%d",&year,&month,&day);
printf("%d--%02d--%02d",year,month,day);
}
沒錯這就可以了,這篇呢只是為了鞏固做題的思路,以及給所有的小白看的。當然,還需要大佬們的指導。