1 #include2 #include 3 #include 4 #include 5 using namespace std; 6 7 //get 三个参数版本(读取一个,读取指定长度,读取到指定字符终止) 8 //getline 2个版本 9 //lcin.ignore(numeric_limits ::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 // else44 // {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 != '\n')55 {56 cin.get(ch[i++]);57 }58 ch[i] = 0;59 cout << ch << endl;60 system("pause");61 }