1. 程式人生 > >C,C++輸入輸出

C,C++輸入輸出

函數功能 oid 輸入 缺省 char void sin 溢出 urn

C語言

  1. 1. scanf printf %c %s %d %lld

scanf %s 遇見“ ”或者回車等就結束

scanf %c 可以讀取空格;

  1. 2. getchar()括號內不能帶參數,其本身就代表鍵入的值

putchar()括號內可帶變量或者常量

只能輸入輸出一個字符;

  1. 3. gets() 讀取字符串,知道遇見回車才結束,故可以讀取空格

put();

C++:

  1. 1. cin,cout

cin讀入什麽類型都是遇見空格就結束了

2. cin.getline、getlinegets的區別

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++輸入輸出