C中输入输出函数
1、printf(“ ……轉換說明…… ”,item1,item2,……)函數
(1)常見的轉換說明有:%d,%s(字符串),%c(字符);
(2)printf(“d“,item),其中10表示要打印字段的寬度,如果item大于10,則會自動使用更寬的字段;10帶負號,表示左對齊,帶正號表示右對齊;
(3)此函數的意義:把存儲在計算機中的二進制格式的數值,按照轉換說明,轉換成一系列字符(一個字符串)以便于顯示,如0100 1100(76),%d說明將之轉換成字符7和6,并顯示為76。
(4)函數返回所打印的字符的數目。它針對所有的打印字符,包括空格和不可見的換行字符。
?
2、scanf(“……轉換說明……”,item1,item2,……)函數
(1)函數作用:我們輸入的是文本(許多字符組成文本),比如我們輸入整數2004時,輸入的是字符2、0、0、4,需要使用scanf(“%d”)將輸入解釋(或者說轉換)為整數;其他情況類似。
(2)scanf()函數使用指向變量的指針作為參數。
(3)“&”使用規則:對字符數組不用&,其余需要。
(4)scanf()函數使用空白字符來表示輸入不同變量,也就是說它依次把轉換說明與字段匹配,跳過字段之間的空白字符(即不讀入空格或者換行,例外是%c,它會讀入空白字符)。
(5)%s:跳過空白字符(換行或者空格)直到遇到第一個非空白字符,然后保存再次遇到空白字符之間的所有非空白字符,存儲的時候,會在結尾附加一個空字符。
(6)%c:對所有的輸入字符都是平等的,如果下一個輸入字符是一個空白字符,將會把它賦給指定的變量,不會跳過空白字符;注意到它只讀一個字符。
(7)返回成功讀入的項目的個數。
?
P.s.(1)? int a[30] 每個元素都是整數;
??????????????? char?a[30]?每個元素都是一個字符。
??????????????? char??*a[30]???定義指向字符串的指針和定義指向字符的指針有什么區別嗎?
?????(2)? strlen()函數可以用于獲得一個字符串的長度(不包括標示終止的空字符)。
?????(3)? 換行和回車是同一個概念吧? 換行和空格……
?????(4)? 特殊的字符一般是‘\字母’,如空格:‘ ’;如換行:‘\n'等。
?
3、getchar()和putchar()函數
(1)專門面向字符的輸入輸出函數;用于標準輸入輸出;
(2)getchar()原型是 int getchar(void),即返回用戶輸入的字符的ASCII 碼。
(3)getchar()只能得到一個字符,如用戶在按回車之前輸入了不止一個字符,其他字符會保留在鍵盤緩存區中,等待后續getchar調用讀取,即后續的getchar調用不會等待用戶按鍵,而直接讀取緩沖區中之前剩余的字符,直到緩沖區中的字符讀完為后,才等待用戶按鍵。
(4)文件結尾檢查:while( ?(ch=getchar()) != ?EOF ?)
?
4、getc()和putc()函數
(1)ch = getc(fp),從指針fp指定的文件獲得一個字符;
(2)putc=(ch,fp),將字符ch寫入FILE指針fp指向的文件中。
?
5、gets()函數和fgets()函數
gets()函數
(1)gets()用于獲取一個字符串,直到遇到一個換行符(‘\n’)(按回車鍵會產生),它讀取換行符之前的所有字符,并在字符后添加一個空字符(‘\0’),作為完整的字符串交給調用它的程序;
(2)它讀取換行符,但是會丟棄,于是下一次讀取時,不會讀入之前的換行符。
(3)如果出錯或者遇到文件結尾,返回空指針NULL。所以錯誤檢測可以為:
while(gets(name)!=NULL)
(4)返回字符型指針,函數聲明如下 char ?*gets(char *s)。
fgets()函數
(1)fgets()第二個參數說明最大可讀入的字符數,如果為n,則最多讀取n-1個字符,或者讀完換行符為止(即會把它存在字符串里,而不是丟棄它)。
(2)第三個參數說明讀哪個文件,如果是從鍵盤上讀取,則標示為stdin;
?
6、puts()函數和fputs()函數
puts()函數
(3)括號中只要給出字符串參數的地址就好;
(4)顯示字符串時自動在其后添加一個換行符;
(5)遇到空字符就會停下來,也就是遇到字符串的末尾的‘\0’;
fputs()函數
(1)需要參數說明寫哪個文件,如果是顯示在屏幕,則標示為stdout;
(2)不為輸出添加自動換行符。
?
總結
- 上一篇: nanotime java 博客园_Sy
- 下一篇: 解决MAC系统字体发虚,更换默认字体为微