一、格式的輸入輸出函數(printf/scanf)
1、printf格式輸出函數
頭文件:#include
功能:以你固定號的格式向終端輸出
原型:int printf(const char *format, ...); //...表示可變參
format:輸出格式串
形式:%[修飾符]格式控制符 (%d、%u、 %c、%s、 %f 、%e、%#x、 %#o、%% )
修飾符:
m:可以設置輸出數據的域寬
:可以將系統默認的右對齊改為作齊
0:將設置域寬空余的部分用0來補
注意:和0不能一起使用
.n:若在浮點類型中表示設置小數點后n位輸出,并且也進行四舍五入
若在字符串中表示設置字符串輸出位
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a = 345, c = ‐5;
printf("%d%d\n", a, a);
printf("%+d%+d\n", a, a);
printf("*******************************\n");
printf("%5d%5d\n", a, a);
printf("%05d%05d\n", a, a);
printf("*******************************\n");
printf("%‐5d%‐5d\n", a, a);
//左對齊,不允許使用0
//printf("%0‐5d%0‐5d\n", a, a)是錯的
printf("%+d\n", c);
float b = 3.1455926;
printf("%f\n", b);
printf("%.2f\n", b);
return 0;
}
2、scanf 格式輸入函數
頭文件:#include
功能:按照指定的格式從鍵盤輸入數據,存入地址表指定存儲單元
中,并按回車鍵結束
原形:int scanf(const char *format, ...);
參數:format 指定輸入格式,后面跟要輸入的變量的地址表,為不定
參,用“...”代表
返回值 :成功返回輸入的變量的個數,失敗返回1(EOF)
格式說明:%[修飾符]格式字符( %d、%c、%s、 %f ) ,用于指定
輸出格式
修飾符:
l: 在d,o,x,u前,指定輸出精度為long型
在e,f,g前,指定輸出精度為double型
m:指定輸入數據寬度,遇空格或不可轉換字符則結束
*:抑制符,指定輸入項讀入后不賦給變量
地址表:保存輸入數據的變量的地址
垃圾字符的回收:
在輸入多個字符的時候,往往會產出空格以及回車這個垃圾字符,所以需要處理
scanf("%c%c%c", &a, &b, &c);
方法1:使用空格隔開
scanf("%c %c %c", &a, &b, &c);
方法2:使用%*c隔開,但是那次只能回收一個
scanf("%c%*c%c%*c%c", &a, &b, &c);
方法3:使用getchar來回收垃圾字符
scanf("%c", &a);
getchar();
scanf("%c", &b);
getchar();
scanf("%c", &c);
getchar();
#include <stdio.h>
int main(int argc, const char *argv[])
{
//在輸入一個字符串的時候,需要保證字符串的長度足夠大
char c[32];
scanf("%s", c);
printf("c = %s\n", c);
return 0;
}
字符的輸入輸出函數(getchar/putchar)
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
//傳一個字符
putchar('a');
putchar('\n');
//傳一個字符的ascii
putchar(97);
putchar(10);
//傳一個變量
char a = 'h', b = 99;
putchar(a);
putchar(b);
putchar(10);
putchar(10);
char c;
c = putchar(a);
putchar(10);
printf("c = %d %c\n", c, c);
#endif
char a, b, c;
a = getchar(); //輸入字符無參數
getchar(); //回收空格
b = getchar();
getchar();
c = getchar();
putchar(a);
putchar(10);
putchar(b);
putchar(10);
putchar(c);
putchar(10);
return 0;
}
字符串輸入(gets)和輸出(puts)函數
#include <stdio.h>
int main(int argc, const char *argv[])
{
#if 0
//自帶換行功能
puts("hello world");
//printf("\n");
//putchar(10);
//puts("")
char a[] = "nihao beijing";
int num;
num = puts(a);
printf("num = %d\n", num);
//puts()能統計字符串的長度包括'\0'(相當于sizeof(a))
#endif
//在輸入一個字符串的時候,必須保證字符串的長度足夠大,否則會內存溢出
char c[32], *d;
d = gets(c);
printf("c = %s\n", c);
printf("d = %s\n", d);
return 0;
}