A. c語言輸出格式
程序的解釋如下(見圖).
B. c語言的輸入輸出格式
在C語言中,輸入使用的是scanf函數,scanf函數的格式為scanf(格式控制,地址列表),如scanf("%d"&a)。
輸出使用的是printf()函數,printf函數的格式為printf(格式控制,輸出表列),如printf("%d\n",a)。在輸出時可以在"%"和字母之間插進數字表示最大場寬。可以根據需要輸出數字的位數來決定「%」前的數值。
如:%3d表示輸出3位整型數,
不夠3位右對齊。
%9.2f
表示輸出場寬為9的浮點數,
其中小數位為2,
整數位為7,小數點佔一位,
不夠9位右對齊。
%8s
表示輸出8個字元的字元串,
不夠8個字元右對齊。
(2)c語言輸出b文件格式擴展閱讀
C語言輸入輸出時的規則:
一、格式說明符個數與輸入數據個數不相等的情況:
當我們輸入數據時,只要沒有按回車鍵,所輸入的數據都還存放在緩沖區,並沒有存入變數中。按【Enter】鍵後,scanf()函數才會從緩沖區中取走數據。緩沖區是一個先進先出的隊列,即取走數據的時候,遵循先輸入的數據先取走的原則。
scanf函數的格式說明符有幾個就要取幾次數據,只要碰到格式說明符就必須把數據取走,至於是不是要把取走的數據存放起來,就得看數據列表中的數據個數。沒取完的數據繼續留在緩沖區中。
二、寬度輸出的情況:
1、在%和格式字元之間加入一個整數來控制輸出數據所佔寬度
2、在%和格式字元f之間加入一個「整數1. 整數2」來控制輸出數據的格式。
整數1:整個輸出數據占的總寬度
整數2:輸出實數的小數部分的個數
注意:先用整數2處理小數部分,再用整數1處理整個數據,包括已處理好的小數部分
三、寬度輸入的情況:
寬度輸入指的是在%和格式說明符d之間加入一個整數。如:scanf("%2d",
&x);
注意:
1、%d與%1d是不同的,它們具有不同的含義。
2、
當寬度小於數據的實際寬度時,截取指定寬度的部分作為一個數進入緩沖區,再將剩餘部分作為另一個數放入緩沖區。
參考資料來源:網路——scanf
網路——printf()
C. c語言中要輸出b怎麼說
要根據格式的需要而定,如:
/*
c語言中要輸出b怎麼說?
字元輸出:
*/
#include "stdio.h"
void main()
{
char b='b';
printf("%c",b);
}
/*
c語言中要輸出b怎麼說?
整型輸出:
*/
#include "stdio.h"
void main()
{
int b;
printf("b");
}
D. C語言輸出格式和類型
大概前面調用字元串文件,然後你定義一個變數用來存放Hello
World!
再printf("%s\n",a(就是你定義的那個變數));也許這樣可以,,,不過我字元串還不怎麼會用。。。。
#include"stdio.h"
#include"string.h"
main()
{
char
a[15];/*好像13就夠大了,,,*/
a[15]=Hello
World!;/*加上空格什麼的,好像還要有一個用於表示結束的,一共就需要13個長度。也許還要把這個字元串用雙引號括起來,這個我不是很清楚,還沒學,,*/
printf("%s\n",a[15]);
}
你自己再在書上看一下吧,,我這個大概有很多錯誤,,,呵呵
E. C語言初學者求教!為啥輸出的是 b
很正常啊,在printf()的格式里壓根就沒有b這個格式,你這輸出就相當於輸出printf("b\n")相當於輸出串。
要輸出整數用printf("%d\n",i);//是d而不是b;
我是菜鳥,希望能幫到你,觀樓主英俊瀟灑,風流倜儻,必當世豪傑,誠邀加入0x30網路貼吧,共商義舉,建不世之功!http://tieba..com/f?ie=utf-8&kw=0x30
F. c語言輸出數字的格式
格式:intgetchar(void);
intc=getchar();
b)等價於:intc=getc(stdin)
c)也等價於:
intc;
scanf(「%c」,&c);
a)單字元輸入輸出:
getchar、getc函數:c=getchar();等價於scanf(「%c」,&c);
putchar、putc函數:putchar(c);等價於printf(「%c」,c);
b)單行輸入輸出:
gets函數:gets(str);等價於scanf(「%s」,str);
puts函數:puts(str);等價於printf(「%s 」,str);
c)格式化輸入輸出:
printf包括:%d、%u、%x、%c、%s等等。
scanf包括:%d、%u、%x、%c、%s等等。
d)佔位控制:
對於整數和字元串在%和控制符之間的數字代表佔位,負號代表左對齊。
對於浮點數除了用數字代表佔位,負號代表左對齊,還有小數位數的管理。
(6)c語言輸出b文件格式擴展閱讀
C 語言中的數據類型(64位)
標識符長度名稱識別方式
char 1B 字元型 ASCII碼
short 2B 短整型 補碼
int 4B 整型 補碼
long 8B 長整型 浮點
float 4B 單精度 浮點
double 8B 雙精度 浮點
* 8B 地址、指針 位元組編號
G. C語言中輸入格式、輸出格式的組成包括哪些內容
希望被樓主採納!!
printf()函數是格式化輸出函數, 一般用於向標准輸出設備按規定格式輸出信息。
printf()函數的調用格式為: printf("<格式化字元串>", <參量表>);
其中格式化字元串包括兩部分內容:
一部分是正常字元, 這些字元將按原樣輸出;另一部分是格式化規定字元, 以"%"開始, 後跟一個或幾個規定字元, 用來確定輸出內容格式。
參量表是需要輸出的一系列參數, 其個數必須與格式化字元串所說明的輸出參數個數一樣多, 各參數之間用","分開, 且順序一一對應, 否則將會出現意想不到的錯誤。
/*******************************************************************/
printf的格式控制的完整格式:
% - 0 m.n l或h 格式字元
下面對組成格式說明的各項加以說明:
①%:表示格式說明的起始符號,不可缺少。
②-:有-表示左對齊輸出,如省略表示右對齊輸出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域寬,即對應的輸出項在輸出設備上所佔的字元數。
n指精度,用於說明輸出的實型數的小數位數。為指定n時,隱含的精度為n=6位。
⑤l或h:l對整型指long型,對實型指double型。h用於將整型的格式字元修正為short型。
格式小結:
(1)最常用的格式是%d,含義是以10進制形式列印一個整數。
如果輸出的整數是負數,則輸出的第一個字元就是-號。
%d:按整型數據的實際長度輸出。
%md:m為指定的輸出欄位的寬度。如果數據的位數小於m,則左端補以空格,若大於m,則按實際位數輸出。
%ld:輸出長整型數據。
(2)%u格式與%d格式類似,只不過要求列印無符號10進制整數。
以無符號十進制形式輸出整數。
對長整型可以用"%lu"格式輸出。同樣也可以指定欄位寬度用「%mu」格式輸出。
(3)%o格式請求輸出8進制整數,以無符號八進制形式輸出整數。
對長整型可以用"%lo"格式輸出。同樣也可以指定欄位寬度用「%mo」格式輸出。
(4)%x和%X格式請求輸出16進制整數。
%x格式中用小寫字母a,b,c,d,e,f來表示10到15之間的數,以無符號十六進制形式輸出整數。
對長整型可以用"%lx"格式輸出。同樣也可以指定欄位寬度用"%mx"格式輸出。
%X格式中用大寫字母A,B,C,D,E,F來表示10到15之間的數
共同點:8進制和16進制整數總是作為無符號數處理的。
(5)%s格式用於列印字元串,與之對應的參數應該是一個字元指針,待輸出的字元始於該指針所指向的地址,直到出現一個空字元('\0')才終止。
%s:例如:printf("%s", "CHINA")輸出"CHINA"字元串(不包括雙引號)。
%ms:輸出的字元串佔m列,如字元串本身長度大於m,則突破獲m的限制,將字元串全部輸出。若串長小於m,則左補空格。
%-ms:如果串長小於m,則在m列范圍內,字元串向左靠,右補空格。
%m.ns:輸出佔m列,但只取字元串中左端n個字元。這n個字元輸出在m列的右側,左補空格。
%-m.ns:其中m、n含義同上,n個字元輸出在m列范圍的左側,右補空格。如果n>m,則自動取n值,即保證n個字元正常輸出。
(6)%c格式用於列印單個字元:例如:
printf("%c",c); 等價於 putchar(c);
(7)%g,%f和%e這三個格式用於列印浮點值。
%g格式用於列印那些不需要按列對齊的浮點數特別有用。其作用有二:
一,去掉該數尾多餘的零(沒有達到六位的數)
二,保留六位有效數字(多餘六位的)
%e格式用於列印浮點數時,一律顯示地使用指數形式:例如:輸出圓周率時是:3.141593e+00
兩者的區別:
%g格式列印出的數是總共6位有效數字
%e格式列印出小數點後的6位有效數字
%f禁止使用指數形式來表示浮點數。因此圓周率輸出為:3.141593
(但注意它的精度要求:也是小數點後6位有效數字)
(8)%%格式用於列印一個%字元。
(9)%E和%G只是在輸出時用大寫字母(E)代替了小寫字母(e)
⑦f格式:用來輸出實數(包括單、雙精度),以小數形式輸出。有以下幾種用法:
%f:不指定寬度,整數部分全部輸出並輸出6位小數。
%m.nf:輸出共佔m列,其中有n位小數,如數值寬度小於m左端補空格。
%-m.nf:輸出共佔n列,其中有n位小數,如數值寬度小於m右端補空格。
⑧e格式:以指數形式輸出實數。可用以下形式:
%e:數字部分(又稱尾數)輸出6位小數,指數部分佔5位或4位。
%m.ne和%-m.ne:m、n和」-」字元含義與前相同。此處n指數據的數字部分的小數位數,m表示整個輸出數據所佔的寬度。
⑨g格式:自動選f格式或e格式中較短的一種輸出,且不輸出無意義的零。
/*******************************************************************/
unsigned int i=295;
printf("%d\n",i);
295
Press any key to continue
(1). 可以在"%"和字母之間插進數字表示最大場寬。
例如: %2d 表示輸出3位整型數, 不夠2位右對齊。
例如: %5d 表示輸出3位整型數, 不夠5位右對齊。
例如: %10d 表示輸出3位整型數, 不夠10位右對齊。
unsigned int i=295;
printf("%2d\n",i);
printf("%5d\n",i);
printf("%10d\n",i);
295
295
295
Press any key to continue
(2).補0或者其它
例如: %02d 表示輸出3位整型數, 不夠2位右對齊,補0。
例如: %05d 表示輸出3位整型數, 不夠5位右對齊,補0。
例如: %010d 表示輸出3位整型數, 不夠10位右對齊,補0。
unsigned int i=295;
printf("%02d\n",i);
printf("%05d\n",i);
printf("%010d\n",i);
295
00295
0000000295
Press any key to continue
(3).負數
int i=-295;
printf("%02d\n",i);
printf("%05d\n",i);
printf("%010d\n",i);
-295
-0295
-000000295
Press any key to continue
(4). 可以控制輸出左對齊或右對齊, 即在"%"和字母之間加入一個"-" 號可 說明輸出為左對齊, 否則為右對齊。
unsigned int i=295;
printf("%-02d\n",i);
printf("%-05d\n",i);
printf("%-010d\n",i);
295
295
295
Press any key to continue
(5). 可以在"%"和字母之間加小寫字母l, 表示輸出的是長型數。
例如: %ld 表示輸出long整數
%lf 表示輸出double浮點數
(6).
%9.2f 表示輸出場寬為9的浮點數, 其中小數位為2, 整數位為6, 小數點佔一位, 不夠9位右對齊。
例如: %6.9s 表示顯示一個長度不小於6且不大於9的字元串。若大於9, 則
第9個字元以後的內容將被刪除.
/*
unsigned int i=295;
printf("%d\n",i);
printf("%1d\n",i);
printf("%09d\n",i);
printf("%09d\n",(unsigned char)i);
printf("%9d\n",(unsigned char)i);
printf("%-9d\n",(unsigned char)i);
*/
/*
295
295
000000295
000000039
39
39
Press any key to continue
*/
/*******************************************************************/
對於m.n的格式還可以用如下方法表示(例)
int m=10,n=5;
char ch[]="abcdefghijklmnopqrst";
printf("%*.*s\n",m,n,ch);//輸出為 abcde
前邊的*定義的是總的寬度,後邊的定義的是輸出的個數,分別對應外面的參數m和n。
我想這種方法的好處是可以在語句之外對參數m和n賦值,從而控制輸出格式
/*******************************************************************/
"%08lx\n",4byte
"%04x\n",2byte
"%-2.2BX",1byte
H. C語言的輸出格式
截圖是在C-Free5.0環境下的運行結果。因為b是float類型,在%.2f格式下輸出的是0.50,而a是int類型,小數部分被截除,整數部分為零,所以輸出為0。要說明的是,對於賦值運算符=,先進行運算符「=「右邊部分的運算,然後將表達式的運算結果賦給「=」左邊的變數。
I. C語言輸出文件
C語言輸入輸出函數 1. fopen()函數
fopen函數用於打開文件, 其調用格式為: FILE *fopen(char *filename, *type);
在介紹這個函數之;前, 先了解一下下面的知識。 (1) 流(stream)和文件(file)
流和文件在Turbo C2.0中是有區別的, Turbo C2.0 為編程者和被訪問的設 備之間提供了一層抽象的東西, 稱之為"流", 而將具體的實際設備叫做文件。 流是一個邏輯設備, 具有相同的行為。因此, 用來進行磁碟文件寫的函數也同樣 可以用來進行列印機的寫入。在Turbo C2.0中有兩種性質的流: 文字流( text stream)和二進制(binary stream)。對磁碟來說就是文本文件和二進制文件。本 軟體為了便於讓讀者易理解Turbo C2.0語言而沒有對流和文件作特別區分。 (2) 文件指針FILE
實際上FILE是一個新的數據類型。它是Turbo C2.0的基本數據類型的集合, 稱之為結構指針。有關結構的概念將在第四節中詳細介紹, 這里只要將FILE理解 為一個包括了文件管理有關信息的數據結構, 即在打開文件時必須先定義一個文 件指針。
(3) 以後介紹的函數調用格式將直接寫出形式參數的數據類型和函數返回值 的數據類型。例如: 上面打開文件的函數, 返回一個文件指針, 其中形式參數有 兩個, 均為字元型變數(字元串數組或字元串指針)。 現在再來看打開文件函數的用法。
fopen()函數中第一個形式參數表示文件名, 可以包含路徑和文件名兩部分。 如:
"B:TEST.DAT"
"C:\\TC\\TEST.DAT"
如果將路徑寫成"C:\TC\TEST.DAT"是不正確的, 這一點要特別注意。
第二個形式參數表示打開文件的類型。關於文件類型的規定參見表。
字元 含義
"r" 打開文字文件只讀
"w" 創建文字文件只寫
"a" 增補, 如果文件不存在則創建一個
"r+" 打開一個文字文件讀/寫
"w+" 創建一個文字文件讀/寫
"a+" 打開或創建一個文件增補
"b" 二進制文件(可以和上面每一項合用)
"t" 文這文件(默認項)
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
fp=fopen("test.dat", "w"); /*建立一個文字文件只寫*/
fputs("Your score of TOEFLis", fp);/*向所建文件寫入一串字元*/
fputc(':', fp); /*向所建文件寫冒號:*/
fprintf(fp, "%d\n", i); /*向所建文件寫一整型數*/
fprintf(fp, "%s", s); /*向所建文件寫一字元串*/
fclose(fp); /*關閉文件*/ }
用DOS的TYPE命令顯示TEST.DAT的內容如下所示: 屏幕顯示
Your score of TOEFL is: 617 That's good news
2. 文件的順序讀操作函數
fscanf()、fgets()和fgetc()函數
函數fscanf()、fgets()和fgetc()均為文件的順序讀操作函數, 其調用格式 如下:
intfscanf(FILE *stream, char *format, <address-list>); charfgets(char *string, int n, FILE *steam); intfgetc(FILE *steam);
fscanf()函數的用法與scanf()函數相似,只是它是從文件中讀到信息。 fscanf()函數的返回值為EOF(即-1), 表明讀錯誤, 否則讀數據成功。
fgets()函數從文件中讀取至多n-1個字元(n用來指定字元數), 並把它們放入string指向的字元串中, 在讀入之後自動向字元串未尾加一個空字元, 讀成功返回string指針, 失敗返回一個空指針。
fgetc()函數返迴文件當前位置的一個字元,讀錯誤時返回EOF。
下面程序讀取例11產生的test.dat文件, 並將讀出的結果顯示在屏幕上。 例12
#include<stdio.h> main() {
char *s, m[20]; int i;
FILE *fp;
fp=fopen("test.dat", "r"); /*打開文字文件只讀*/
fgets(s, 24, fp); /*從文件中讀取23個字元*/
printf("%s", s); /*輸出所讀的字元串*/
fscanf(fp, "%d", &i); /*讀取整型數*/
printf("%d", i); /*輸出所讀整型數*/
putchar(fgetc(fp)); /*讀取一個字元同時輸出*/
fgets(m, 17, fp); /*讀取16個字元*/
puts(m); /*輸出所讀字元串*/
fclose(fp); /*關閉文件*/
getch(); /*等待任一鍵*/ }
運行後屏幕顯示:
Your score of TOEFL is: 617 That's good news
如果將上例中fscanf(fp, "%d", &i)改為fscanf(fp, "%s", m), 再將其後
的輸出語句改為printf("%s", m), 則可得出同樣的結果。由此可見Turbo C2. 0 中只要是讀文字文件, 則不論是字元還是數字都將按其ASCII值處理。另外還要說明的一點就是fscanf()函數讀到空白符時, 便自動結束,在使用時要特別注意。
3. 文件的隨機讀寫
有時用戶想直接讀取文件中間某處的信息, 若用文件的順序讀寫必須從文件 頭開始直到要求的文件位置再讀, 這顯然不方便。Turbo C2.0提供了一組文件的 隨機讀寫函數, 即可以將文件位置指針定位在所要求讀寫的地方直接讀寫。 文件的隨機讀寫函數如下:
intfseek (FILE *stream, long offset, intfromwhere);
intfread(void *buf, int size, int count, FILE *stream);
intfwrite(void *buf, int size, int count, FILE *stream);
longftell(FILE *stream);
fseek()函數的作用是將文件的位置指針設置到從fromwhere開始的第offset 位元組的位置上, 其中fromwhere是下列幾個宏定義之一: 文件位置指針起始計算位置fromwhere
符號常數 數值 含義
SEEK_SET 0 從文件開頭
SEEK_CUR 1 從文件指針的現行位置
SEEK_END 2 從文件末尾
offset是指文件位置指針從指定開始位置(fromwhere指出的位置)跳過的字 節數。它是一個長整型量, 以支持大於64K位元組的文件。fseek()函數一般用於對 二進制文件進行操作。
當fseek()函數返回0時表明操作成功, 返回非0表示失敗。 下面程序從二進制文件test_b.dat中讀取第8個位元組。 例13:
#include<stdio.h> main() {
FILE *fp;
if((fp=fopen("test_b.dat", "rb"))==NULL) {
printf("Can't open file"); exit(1); }
fseek(fp, 8. 1, SEEK_SET); fgetc(fp);
fclose(fp); }
fread()函數是從文件中讀count個欄位, 每個欄位長度為size個位元組, 並把 它們存放到buf指針所指的緩沖器中。
fwrite()函數是把buf指針所指的緩沖器中, 長度為size個位元組的count個字 段寫到stream指向的文件中去。
隨著讀和寫位元組數的增大, 文件位置指示器也增大, 讀多少個位元組, 文件位 置指示器相應也跳過多少個位元組。讀寫完畢函數返回所讀和所寫的欄位個數。 ftell()函數返迴文件位置指示器的當前值,這個值是指示器從文件頭開始 算起的位元組數, 返回的數為長整型數, 當返回-1時, 表明出現錯誤。 下面程序把一個浮點數組以二進制方式寫入文件test_b.dat中。 例14:
#include <stdio.h> main() {
float f[6]={3.2, -4.34, 25.04, 0.1, 50.56, 80.5};
/*定義浮點數組並初始化*/
int i;
FILE *fp;
fp=fopen("test_b.dat", "wb"); /*創建一個二進制文件只寫*/
fwrite(f, sizeof(float), 6, fp);/*將6個浮點數寫入文件中*/
fclose(fp); /*關閉文件*/
}
下面例子從test_b.dat文件中讀100個整型數, 並把它們放到dat數組中。
例15:
#include <stdio.h>
main()
{
FILE *fp;
intdat[100];
fp=fopen("test_b.dat", "rb");/*打開一個二進制文件只讀*/
if(fread(dat, sizeof(int), 100, fp)!=100) /*判斷是否讀了100個*/ {
if(feof(fp))
printf("End of file"); /*不到100個數文件結束*/
else
printf("Read error"); /*讀數錯誤*/
fclose(fp); /*關閉文件*/
}
注意:
當用標准文件函數對文件進行讀寫操作時, 首先將所讀寫的內容放進緩沖區, 即寫函數只對輸出緩沖區進行操作, 讀函數只對輸入緩沖區進行操作。例如向一 個文件寫入內容, 所寫的內容將首先放在輸出緩沖區中, 直到輸出緩沖區存滿或
使用fclose()函數關閉文件時, 緩沖區的內容才會寫入文件中。若無fclose()
函數, 則不會向文件中存入所寫的內容或寫入的文件內容不全。有一個對緩沖區 進行刷新的函數, 即fflush(), 其調用格式為: intfflush(FILE *stream);
該函數將輸出緩沖區的內容實際寫入文件中, 而將輸入緩沖區的內容清除掉。
4. feof()和rewind()函數
這兩個函數的調用格式為:
intfeof(FILE *stream);
int rewind(FILE *stream);
feof()
函數檢測文件位置指示器是否到達了文件結尾,若是則返回一個非0
值, 否則返回0。這個函數對二進制文件操作特別有用, 因為二進制文件中,文件結尾標志EOF也是一個合法的二進制數,只簡單的檢查讀入字元的值來判斷文件是否結束是不行的。如果那樣的話, 可能會造成文件未結尾而被認為結尾, 所 以就必須有feof()函數。
下面的這條語句是常用的判斷文件是否結束的方法。
while(!feof(fp))
fgetc(fp);
while為循環語句, 將在下面介紹。
rewind()函數用於把文件位置指示器移到文件的起點處, 成功時返回0,否 則, 返回非0值。
1.2.2 非標准文件函數
這類函數最早用於UNIX操作系統, ANSI標准未定義, 但有時也經常用到, DOS 3.0以上版本支持這些函數。它們的頭文件為io.h。
一、文件的打開和關閉
1. open()函數
open()函數的作用是打開文件, 其調用格式為:
int open(char *filename, int access);
該函數表示按access的要求打開名為filename的文件, 返回值為文件描述字, 其中access有兩部分內容: 基本模式和修飾符, 兩者用" "("或")方式連接。修 飾符可以有多個, 但基本模式只能有一個。access的規定如表3-2。
表3-2 access的規定
基本模式 含義 修飾符 含 義
O_RDONLY 只讀 O_APPEND 文件指針指向末尾
O_WRONLY 只寫 O_CREAT 文件不存在時創建文件, 屬性按基本模式屬性
O_RDWR 讀寫 O_TRUNC 若文件存在, 將其長度縮為0, 屬性不變
O_BINARY 打開一個二進制文件 O_TEXT 打開一個文字文件
open()函數打開成功, 返回值就是文件描述字的值(非負值), 否則返回-1。
2. close()函數
close()函數的作用是關閉由open()函數打開的文件, 其調用格式為:
int close(int handle);
該函數關閉文件描述字handle相連的文件。
Puts與gets 函數的區別
Puts 函數與printf輸出函數一樣,都是將buffer(緩存中)的信息輸入到控制台上,printf將信息輸入到控制台時能夠進行格式的控制,比如控制符換行符號。而put函數只能夠將信息原封不動的輸入到控制台
Gets 函數與scanf函數的區別。
這兩個函數都是將控制台信息輸入到緩存區域中去的,但gets函數能夠接受空格符換行符這些特殊的符號而scanf則不行 例如:對於 char s[23] gets(s) 與scanf(「%S」,s) 輸入字元abc de 則gets 中接受的是abc de 而對於scanf接受的只是abc因為abc後面的空格符他沒法接受。