C常用輸入輸出總結
阿新 • • 發佈:2019-01-08
一、輸入輸出格式
1)整型
scanf("%d",&m); //int
scanf("%ld",&m); //long int
scanf("%lld",&m); //long long int
2)浮點型
1、基本格式
scanf("%f",&m); //float
scanf("%lf",&m); //double
2、加域寬
#include<stdio.h> int main(){ double m; while(scanf("%lf",&m)!=EOF){ printf("%.2lf\n",m); //保留兩位小數,整數部分不限制 printf("%5.2lf",m); //保留兩位小數,兩位整數。若整數小於兩位則右對齊(若%後面加‘-’,則左對齊);若整數部分大於2位則該限制失效(小數點算一位) } return 0; }
3)字元和字串(c語言裡面沒有string型別)
//關於字元陣列是否要加&,可參見https://zhidao.baidu.com/question/523623586.html
1、輸入輸出格式
#include<stdio.h> int main() { char ch1[10]; //作為字串,但不能帶空格 char ch2; //單個字元 scanf("%s %c",ch1,&ch2); printf("%s %c",ch1,ch2); return 0; }
2、字元陣列賦初值方式
#include <stdio.h> #include <string.h> int main(){ //前兩種定義時賦初值 char m0[10]="abcdefg"; char m1[10]={'a','b','c','d','e','f','g'}; //第三種先定義後,若要直接一次性賦初值就用strcpy(陣列名,字串),當然對下標用迴圈一一賦初值也行。 char m2[10]; strcpy(m2,"fdafafads"); printf("%s\n%s\n%s\n",m0,m1,m2); return 0; }
3、帶空格的字串輸入方式
-
char data[100]; gets(data);
-
char data[100]; scanf("%[^\n]", &data); //使用正則表示式,讀到換行符結束
注:c++輸入方式
對於字元陣列:
cin.getline(str, len) cin.get(str, len)
兩者都是讀取一行輸入,直至換行符。
getline()將換行符丟棄,而get()將換行符保留在輸入序列裡
對於string類:
getline(cin, str)
4、多個字元輸入
如:若要輸入以下資料並對每組資料進行相應處理,則要注意,詳見註釋。
4
C J
J B
C B
B B
scanf("%d",&m);
getchar(); //必須要吃掉回車,會被讀取,因為這也是一個字元
for(i=0; i<m; i++){
scanf("%c %c",&a,&b); //中間必須加上空格,因為給出的資料中間有空格
getchar(); //同樣道理,要吃掉回車
//do something.......
}
5、使用正則表示式限制輸入
char a[100];
scanf("%[0-9]",a); //輸入字串,但每個字元都只能為數字,當然也可限制字母即:%[a-z]
puts(a);