c/c++字元、字串輸入輸出
1. scanf
1.1 輸入字元
char ch;
scanf("%c",&ch);
注意字元前面的取地址符
1.2 輸入字串
char str[15];
scanf("%s",str);
char *pstr;
scanf("%s",pstr);
(1)scanf在輸入字串時,不讀入空格和回車,在讀入空格或回車時,輸入結束
(2)輸入字串長度超過字元陣列元素個數不報錯,但執行時會提示“Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted.”
(3)當為str為陣列元素地址時,從此元素地址開始存放
(4)當輸入項為字元指標時,指標必須已指向確定的有足夠空間的連續儲存單元,不然會提示指標未初始化
2.getchar
輸入一個字元
char ch;
ch = getchar();
3.gets
輸入一個字串,包括空格,遇到回車結束輸入
char str[15];
gets(str);
4.cin
輸入數字:以空格或回車結束
輸入字元或字串:以空格、TAB、回車結束!
5.cin.get
cin.get(字元變數名):用來接收字元
cin.get(字元陣列名,接受字元數目),用來接收一個字串,可以接受空格的
cin.get(無引數):沒有引數主要是用於捨棄輸入流中的不需要的字元或者捨棄回車彌補
cin.get(字元陣列名,接受字元數目),的空格的不足getline將丟棄換行符,而get()將換行符保留在輸入序列裡,但是字串中並沒有換行符。使用cin.get()輸入多行資料時,中間可以使用get()消除換行符。
int main()
{
char str1[30], str2[30];
cin.get(str1, 30);
cin.get();
cin.get(str2, 30);
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
return 0;
}
6.cin.getline
cin.getline(字元陣列名,接受字元數目):接受一個字串
cin.getlne():其實可以有三個引數,最後一個引數是字串的結束標誌,當最後的引數省略時,預設是'\0'
char str[15];
int len = 5;
cin.getline(str,len,'*');
7.Printf
printf("%s",地址值)
輸出時遇到第一個'\0'為止
8.puts
puts遇到第一個‘\0’結束,自動加入換行符
char str[15];
gets(str);
puts(str);