1. 程式人生 > >字串處理技巧--輸入/輸出方法格式

字串處理技巧--輸入/輸出方法格式

字元(串)多種輸入函式方法

(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.