新聞中心
C語言 所有的類型輸出符
在C語言中,輸入輸出函數(shù)有著相當重要的地位,它是我們的程序與用戶交互的唯一途徑,現(xiàn)在我就將C語言中比較常見的幾個輸入輸出函數(shù)介紹給大家,以下這些講解都是針對VC調試平臺。
為安源等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及安源網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為成都網(wǎng)站建設、做網(wǎng)站、安源網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
(一) 格式化輸入輸出函數(shù)
(1)scanf( )格式化輸入函數(shù)
格式輸入函數(shù)scanf( )函數(shù),它的格式為scanf(“格式字符串”,輸入列表)。“格式字符串”包含三種類型的字符:a、格式字符,以%開頭的字符,用以說明輸入列表的數(shù)據(jù)以何種類型及格式的形式輸入。b、普通字符,要求在輸入時必須原樣一起輸入的字符。C、空白字符(空格、跳格鍵、回車鍵)作為相鄰兩個數(shù)據(jù)的默認分隔符。
在scanf( )函數(shù)中有以下地方需要注意:
[1] 在scanf()函數(shù)中的格式字符串不存在轉義字符,所以:格式字符串中的字符除了格式字符外全部都要原樣輸入。
如:
int a;
scanf(“%d\n”,a);如果我們想把10賦值給a,就需要在鍵盤上輸入的是:
10\n回車,才能把10賦值給a,這里\n已經(jīng)不是轉義字符,而是普通字符。
[2] 輸入列表的變量如果是基本類型(即整型、實型、字符型)一定要使用取地址符(輸入字符串到字符數(shù)組的情況除外),而且后必須是變量,不允許是常量或表達式。
如:
int a,b;
scanf("%d%d",a,b); 這是不合法的。Scanf函數(shù)的作用是:按照a、b在內存的地址將a、b的值存進去?!癮”指a在內存中的地址。
[3] 輸入數(shù)據(jù)時,企圖規(guī)定精度
float a;
scanf("%.2f",a);
這樣做是不合法的,輸入數(shù)據(jù)時不能規(guī)定精度,這里要記住一個程序是不能控制操作它的人來輸入數(shù)據(jù)的精度的。
[4] 輸入數(shù)據(jù)的方式與要求不符
① scanf("%d%d",a,b);
輸入時,不能用逗號作兩個數(shù)據(jù)間的分隔符,如下面輸入不合法:3,4 輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
②scanf("%d,%d",a,b);
C規(guī)定:如果在“格式控制”字符串中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應輸入與這些字符相同的字符。下面輸入是合法的:3,4
此時不用逗號而用空格或其它字符是不對的。3 4
又如:scanf("a=%d,b=%d",a,b);
輸入應如以下形式:a=3,b=4
[5] 輸入字符的格式與要求不一致
在用“%c”格式輸入字符時,“空格字符”和“轉義字符”都作為有效字符輸入。
scanf("%c%c%c",c1,c2,c3);
如輸入a b c
字符“a”送給c1,字符“ ”送給c2,字符“b”送給c3,因為%c只要求讀入一個字符,后面不需要用空格作為兩個字符的間隔。
[6] 使用格式字符”%c”錄入單個字符時,空格和回車鍵等字符都會作為有效字符輸入,所以需要注意fflush(stdin)的使用。
[7] 注意輸入列表中的元素的個數(shù)要與格式字符串中的格式字符個數(shù)相同。
[8] 在輸入長整形數(shù)據(jù)和雙精度浮點數(shù)時,必須使用長度修飾符”l”。
[9] 不要在不該使用取地址符的地方使用取地址符。
如:char str[10];
Scanf(%c,str);這里不應該加取地址符。
(2)printf( )格式輸出函數(shù)
格式輸出函數(shù)printf( ),它的格式為printf(“格式字符串”,輸出列表)。這里的格式字符串也包含三種類型的字符,但這里和scanf( )函數(shù)的字符稍有不同。這三種類型的字符分別是:a、格式字符,以%開頭的字符,用以說明輸出列表的數(shù)據(jù)以何種格式的形式輸出。B、轉義字符,提供特殊的格式化控制,由一個“\”和一個字符組成。反斜杠會使printf( )函數(shù)以特殊的方式解釋一個字符。C、普通字符,除格式字符和轉義字符外的其他字符。
在printf( )函數(shù)中有以下地方需要注意:
[1] 輸出列表由若干個輸出項組成,輸出項可以是常量、變量,也可以是表達式。
[2] 格式字符串中的格式字符要與后邊輸出列表中的元素類型一一對應。
如:
float a=1.9999;
printf("%d",a);最終的輸出結果是一些亂碼。
再如:
int a=12;
printf("%f",a);最終的輸出結果是0.000000,這里沒有進行類型轉換。
但是,如果想把上面的整數(shù)a以浮點數(shù)的形式輸出,必須進行強制類型轉換。如:
int a=12;
printf("%f",(float)a);輸出的結果是12.000000。
[3] 格式字符串中的格式字符的個數(shù)要與輸出列表中的元素個數(shù)相同。
如:
int a=12;
printf("%d, %d",a);將在屏幕上輸出一個12以及一個亂碼。
[4] 在以%.nf這樣的格式進行輸出浮點數(shù)時,有四舍五入。
如:
float a=1.9999;
printf(“%.2f”,a);最終的輸出結果是2.00。
[5] 長度修飾符“l(fā)”在輸出長整形數(shù)據(jù)時可不要,因為在VC中,long和int占用的字節(jié)長度都是4,所有可以不加上“l(fā)”。
[6] 格式符%±nd中,n表示一個十進制整數(shù)輸出時在屏幕上占n個字符的寬度,如果n前面是+號,則表示輸出的整數(shù)右對齊,那么輸出的整數(shù)左邊補空格;如果n前面是-號,則表示輸出的整數(shù)左對齊,輸出的整數(shù)右邊補空格。
[7] 在-128~127之間的整數(shù)可以以字符的格式輸出,字符也可以以整型的格式輸出。
如:
int a=97;
printf("%c",a);輸出的結果是’a’,因為‘a(chǎn)’存儲在內存中是以ASCII碼的形式存儲的。
再如:
char a='a';
printf("%d",a);輸出的結果是97,原因同上。
(二) 單字符輸入、輸出函數(shù)
C語言提供了兩個無格式控制的,專門用于輸入、輸出單個字符的函數(shù)getchar( )和putchar( )。
(1) 單字符輸入函數(shù)getchar( )
[1] getchar( )函數(shù)沒有參數(shù),有返回值,返回的就是輸入的那個字符。
[2] getchar( )函數(shù)一次只能接收一個字符。
[3] getchar( )函數(shù)同樣將空格和回車鍵等字符都會作為有效字符輸入,所以注意和fflush(stdin)函數(shù)的結合使用。
(2) 單字符輸出函數(shù)putchar( )
[1] putchar()函數(shù)有參數(shù),無返回值。參數(shù)就是它要輸出的那個字符,可以是字符變量或著字符常量
[2] putchar()函數(shù)一次向顯示器輸出一個字符。
(三) 字符串輸入、輸出函數(shù)
C語言還提供了兩個無格式控制的專門對字符串處理的函數(shù),gets( )和puts( )。
(1) gets( )用來接收用戶輸入的字符串,這是個有參數(shù)的函數(shù),參數(shù)是一個字符數(shù)組類型,輸入的字符串通過傳址的方式傳到這個字符數(shù)組中。
(2) puts()用來向用戶顯示一個字符串,它需要一個字符串參數(shù),顯示該參數(shù)并自動換行。
如:
puts(“hello, world.”);與printf(“hello,world.\n”);的效果相同,如果是puts(“hello.world.\n”)則要輸出兩個換行。也就是說,puts( )中的字符串可以包含轉義字符。
輸入字符串:
scanf("%s",in_buff);
——可以格式化輸入;第二個參數(shù)是地址,可以是字符指針或者字符數(shù)組;不提供字符數(shù)組數(shù)據(jù)越界檢查;以回車結束輸入。
gets(in_buff);
——參數(shù)為地址,可以使字符指針或者字符數(shù)組;不提供字符數(shù)組越界檢查;以回車結束輸入。
fgets(in_buff,BUFFER_SIZE + 1,stdin);
——參數(shù)1為字符指著或者字符數(shù)組,參數(shù)2為要輸入的字符個數(shù),+1表示字符串結束標志,參數(shù)3為標準是輸入;提供越界檢查,以buffer_size+1為標準;以回車結束輸入。
輸入字符:
getch();
——從控制臺讀取一個字符,但是不回顯在屏幕上;不需要回車結束。
getche();
——從控制臺讀取一個字符,回顯屏幕;不需要回車結束。
getchar();
——從控制臺讀取一個字符,回顯屏幕;需要回車結束(如果連續(xù)使用該函數(shù),要注意下次調用該函數(shù),會讀取上次輸入的回車符)。
scanf("%c",char *);
——從控制臺讀取一個字符,回顯屏幕;需要回車結束(注意事項同上)。
這就是C語言中常用到的幾個輸入輸出函數(shù),而且這幾個函數(shù)都包含在stdio.h頭文件中。在這幾個函數(shù)中,格式輸入輸出的用途最多也最容易出問題,希望提起大家的注意。
C語言34種運算符
34種運算符:
01、圓括號()
02、下標[]
03、指針型結構成員-
04、結構成員.
05、邏輯非!
06、位非~
07、自增++
08、自減--
09、取負-
10、類型轉換(類型)
11、取內容*
12、取地址
13、求字節(jié)sizeof
14、乘*
15、除/
16、求余%
17、加+
18、減-
19、左移
20、右移
21、小于
22、小于等于=
23、大于
24、大于等于=
25、等于==
26、不等于!=
27、位與
28、位異或^
29、位或|
30、與
31、或||
32、條件運算?:
33、賦值運算=
34、逗號運算,
擴展資料
9種控制語句
1、if()~else條件語句
2、for()~循環(huán)語句
3、while()~循環(huán)語句
4、do~while()循環(huán)語句
5、continue結束本次循環(huán)語句
6、break中止執(zhí)行switch或循環(huán)語句
7、switch多分支選擇語句
8、goto轉向語句
9、return從函數(shù)返回語句
C語言中,輸出函數(shù)有哪些?
C語言輸入輸出函數(shù)有很多,標準I/O函數(shù)中包含了如下幾個常用的函數(shù):
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
scanf(const
char
*format,
arg_list)
scanf主要從標準輸入流中獲取參數(shù)值,format為指定的參數(shù)格式及參數(shù)類型,如scanf("%s,%d",str,icount);
它要求在標準輸入流中輸入類似"son
of
bitch,1000"這樣的字符串,同時程序會將"son
of
bitch"給str,1000給icount.
scanf函數(shù)的返回值為int值,即成功賦值的個數(shù),在上例中如果函數(shù)調用成功,則會返回2,所以我們在寫程序時,可以通過
語句if(scanf("%s,%d",str,icount)
!=
2){...}來判斷用戶輸入是否正確.
int
printf(const
char
*format,
arg_list)
printf主要是將格式化字符串輸出到標準輸出流中,在stdio.h頭文件中定義了標準的輸入和輸出,分別是stdin,stdout.
arg_list可以是變量名,也可以是表達式,但最終都會以值的形式填充進format中.
int
getc(FILE
*fp)
getc主要是從文件中讀出一個字符.常用的判斷文件是否讀取結束的語句為:(ch
=
getc(fp))
!=
EOF.EOF為文件結束標志,
定義在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定義在stdlib.h中一樣,文件也可以被理解為一種流,所以當fp為stdin
時,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch寫到文件fp中去.如果fp為stdout,則putc就等同于putchar()了.
int
getchar(void)
getchar主要是從標準輸入流讀取一個字符.默認的標準輸入流即stdio.h中定義的stdin.但是從輸入流中讀取字符時又
涉及到緩沖的問題,所以并不是在屏幕中敲上一個字符程序就會運行,一般是通過在屏幕上敲上回車鍵,然后將回車前的字符
串放在緩沖區(qū)中,getchar就是在緩沖區(qū)中一個一個的讀字符.當然也可以在while循環(huán)中指定終止字符,如下面的語句:
while
((c
=
getchar())
!=
'#')這是以#來結束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch寫到標準流stdout中去.
char
*
gets(char
*str)
gets主要是從標準輸入流讀取字符串并回顯,讀到換行符時退出,并會將換行符省去.
int
puts(char
*str)
puts主要是把字符串str寫到標準流stdout中去,并會在輸出到最后時添加一個換行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放讀入的字符數(shù)組指針,num是最大允許的讀入字符數(shù),fp是文件指針.fgets的功能是讀一行字符,該行的字符數(shù)
不大于num-1.因為fgets函數(shù)會在末尾加上一個空字符以構成一個字符串.另外fgets在讀取到換行符后不會將其省略.
int
fputs(char
*str,
file
*fp)
fputs將str寫入fp.fputs與puts的不同之處是fputs在打印時并不添加換行符.
int
fgetc(FILE
*fp)
fgetc從fp的當前位置讀取一個字符.
int
fputc(int
ch,
file
*fp)
fputc是將ch寫入fp當前指定位置.
int
fscanf(FILE
*fp,
char
*format,...)
fscanf按照指定格式從文件中出讀出數(shù)據(jù),并賦值到參數(shù)列表中.
int
fprintf(FILE
*fp,
char
*format,...)
fprintf將格式化數(shù)據(jù)寫入流式文件中.
C語言算術運算符是哪些
七個
+ - * / % ++ --
加減乘除不用我說了吧
"%"求余,就是算除法,值是他的余數(shù)
"/"這個是除法,但是有一點注意,兩邊操作數(shù)全為整數(shù)時,值是取整的。
“++”是自加,比如說i++就是i的值自動加1,規(guī)則是i++是鮮賦值再自加,++i是先自加再賦值。舉個例子a=i++這個是先把i的值賦給a,然后i再自加。a=++i是i先自加,然后把自加之后的值賦給a。
“--”是自減,和自加的規(guī)則相同,只是值是自動減一。
C語言的運算符可分為以下幾類:
1. 算術運算符:用于各類數(shù)值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
2. 關系運算符:用于比較運算。包括大于()、小于()、等于(= =)、大于等于(=)、小于等于(=)和不等于(!=)六種。
3. 邏輯運算符:用于邏輯運算。包括與()、或(||)、非(!)三種。
4. 位操作運算符:參與運算的量,按二進制位進行運算。包括位與()、位或(|)、位非(~)、位異或(^)、左移()、右移()六種。
5. 賦值運算符:用于賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(=,|=,^=,=,=)三類共十一種。
6. 條件運算符:這是一個三目運算符,用于條件求值(?:)。
7. 逗號運算符:用于把若干表達式組合成一個表達式(,)。
8. 指針運算符:用于取內容(*)和取地址()二種運算。
9. 求字節(jié)數(shù)運算符:用于計算數(shù)據(jù)類型所占的字節(jié)數(shù)(sizeof)。
10. 特殊運算符:有括號(),下標[],成員(→,.)等幾種。
分享名稱:c語言輸出函數(shù)運算符,C語言字符輸出函數(shù)
鏈接分享:http://fisionsoft.com.cn/article/hdhjjh.html