1 #include <iostream> 2 #include <iomanip> 3 #include <cstring> 4 #include <cstdlib> 5 using namespace std; 6 7 //get 三个参数版本(读取一个,读取指定长度,读取到指定字符终止) 8 //getline 2个版本 9 //lcin.ignore(numeric_limits<streamsize>::max(),'#'); 忽略指定字符前的元素 10 //cin.read(ch,5); 不管什么字符,读取5个 11 //cin.putback 用于替换 12 //peek读取下一个字符 13 14 void main() 15 { 16 //char ch1[15]{ 0 }; 17 //char ch2[15]{ 0 }; 18 19 ////cin.get(ch1, 15);//从某个地址,读取15个长度的字符,没读取完则填充零 20 ////一下这种方法的弊端就是遇到空格会终止 21 ////cin >> ch1; 22 ///*cin.getline(ch1, 30); 23 //cout << ch1 << endl;*/ 24 25 ////指定遇到#截止 26 //cin.getline(ch1, 30, '#'); 27 //cout << ch1 << endl; 28 29 //char ch[30]{ 0 }; 30 //cin >> ch;//cin每次会自动清空缓冲区 31 ////获取缓冲区里面有多少字符 32 //int i = cin.gcount(); 33 //cout << i << endl; 34 35 //char ch; 36 //while (cin.get(ch)) 37 //{ 38 // if (ch == '#') 39 // { 40 // //丢弃当前字符,替换为新的字符 41 // cin.putback('@'); 42 // } 43 // else 44 // { 45 // cout << ch; 46 // } 47 // 48 //} 49 50 char Pch; 51 char ch[30]; 52 int i = 0; 53 //peek取出当前读取的字符的下一个字符,不会从流中删除 54 while ((Pch = cin.peek())!= 'x' && Pch != ' ') 55 { 56 cin.get(ch[i++]); 57 } 58 ch[i] = 0; 59 cout << ch << endl; 60 system("pause"); 61 }