C,C++輸入輸出
C語言:
- 1. scanf printf %c %s %d %lld
scanf %s 遇見“ ”或者回車等就結束
scanf %c 可以讀取空格;
- 2. getchar()括號內不能帶參數,其本身就代表鍵入的值
putchar()括號內可帶變量或者常量
只能輸入輸出一個字符;
- 3. gets() 讀取字符串,知道遇見回車才結束,故可以讀取空格
put();
C++:
- 1. cin,cout
cin讀入什麽類型都是遇見空格就結束了
2. cin.getline、getline和gets的區別
cin.getline:
此函數一次讀取多個字符(包括空白字符),直到讀滿N-1個,或者遇到指定的結束符為止(默認的是以‘\n‘結束)。其語法為:cin.getline(字符指針(char*),字符個數N(int),結束符(char));
#include<iostream>
using namespace std;
int main()
{
char a[10];
cin.getline(a,10);
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
return 0;
}
輸入:1234567890123
輸出:1 2 3 4 5 6 7 8 9 _ (第10位存放字符串結束符‘\0‘)
註意:cin.getline()函數缺省的第三個參數為‘\n‘,如果把cin.getline(a,10)改為cin.getline(a,10,‘#‘)
#include<iostream>
using namespace std;
int main()
{
char a[10];
cin.getline(a,10,‘#‘);
cout<<a<<endl;
return 0;
}
輸入:1234#567890
輸出:1234
getline:
註意:與cin.getline功能類似,但是參數不一樣,也屬於兩個不同的流,是兩個不一樣的函數。getline接受的字符串長度不受限制
#include<string>//getline包含在string頭文件裏
#include<iostream>
using namespace std;
int main()
{
string str;
getline(cin,str,‘#‘);
char c=getchar();
cout<<str<<‘ ‘<<c<<endl;
return 0;
}
輸入為:aa#b
輸出為:aa b
gets:
C中的函數。可以無限讀取,不會判斷上限,以回車結束讀取,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出
與getline函數功能相似,但是不能自定義結束符,只能換行符結束
#include "stdio.h" //這個頭文件包含gets()函數
int main(void)
{
char str1[5];
gets(str1);
printf("%s\n", str1);
return 0;
}
輸入:ab c
輸出:ab c
C,C++輸入輸出