126.输入输出深入以及小结

 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 != '\n')
55     {
56         cin.get(ch[i++]);
57     }
58     ch[i] = 0;
59     cout << ch << endl;
60     system("pause");
61 }

 

posted @ 2018-03-21 22:37  喵小喵~  阅读(130)  评论(0编辑  收藏  举报