字串處理技巧--輸入/輸出方法格式
字元(串)多種輸入函式方法
(string物件的讀入,自動忽略開頭空白(換行,空格,製表)符,從嚴格意義上的第一個真正字元開始讀入)
首當其衝就是C/C++的基本輸入方法
printf()&&scanf() C語言輸入輸出函式
單字元的佔位符為“%c”;讀取單字元
字串的佔位符為“%s”;讀取一箇中間沒有空格且沒有換行的字串
cout&&cin C++輸入輸出緩衝流
// 字串的輸入以空格結束
1;getline()包含兩個引數
getline(流引數,輸入string物件)
標頭檔案:#include <string>
istream& getline ( istream &is , string &str , char delim ); (原型)
用法(1). getline(cin,str);
(2). cin,getline(str,length) 指定輸入length個字元,包含末尾一個‘\0’
2; gets()/puts()
讀取整行字元,包括空格,遇回車結束,但換行符會被丟棄,然後在末尾新增'\0'字元
puts輸出與gets對應,可輸出空格 呼叫格式:gets(s); s為字串變數(字串陣列名或字串指標)
puts輸出字串時要遇到'\0’也就是字元結束符才停止,並換行
(注意;1. puts只能輸出字元,不能是數值或者進行格式轉化
2. 如果輸入順利,它返回的是讀入字串的地址;如果出錯或gets()遇到檔案結尾,它就返回一個空(或0)地址)
3; getchar()/putchar()
getchar()返回讀入字元的ASCII碼,可以對其處理輸出對應字元
可以printf,佔位符%c 輸出字元
使用方法示例程式碼
#include <iostream> #include <cstring> #include <cstdio> #include <string> using namespace std; const int maxn=1000+10; int main(){ // freopen("C:\\Users\\24398\\Desktop\\in-project.txt","r",stdin); // string str; //error getsd的物件必須是char* char str1[maxn]; gets(str1); cout<<str1<<endl; puts(str1); // puts(1); //error char str2[maxn]; // string str2; //error !!! cin.getline(str2,5); string str3; getline(cin,str3); //讀入未知數量物件 string str; //1.cin while(cin>>str){ cout<<str; } //2.getline while(getline(cin,str)){ cout<<str; //多種判斷方法 if(str.size()>maxn) cout<<str; if(str.empty()>maxn) cout<<str; } //3.gets while(gets(str)){ cout<<str; } //4.getchar int c; while((c==getchar())!=EOF){ cout<<c; //多種方法 printf("%c",c); putchar(c); } return 0; }
4;檔案格式的輸入
fget()/fput()
fgetc()/fputc()
開啟一個檔案(引數),讀入單個字元,返回一個int值
檔案輸入結束,則返回一個特定標記EOF
fgets()/fputs()
原型 char * fgets(char * s, int n,FILE *stream);
引數:
s: 字元型指標,指向儲存讀入資料的緩衝區的地址。
n: 從流中讀入n-1個字元
stream : 指向讀取的流。
返回值:
1. 當n<=0 時返回NULL,即空指標。
2. 當n=1 時,返回空串"".
3. 如果讀入成功,則返回緩衝區的地址。
4. 如果讀入錯誤或遇到檔案結尾(EOF),則返回NULL.