C++标准输入输出

1,cout

  1) 用来向标准输出打印。

  2) 如果参数是char*类型,则直接输出字符串。如果想要输出地址,则需要强制转换:

  <<static_cast<void*>(const_cast<char*>(pstr));

2,cin

  1) 将标准输入读入变量,如果输入与变量声明类型不一致,则cin为false,可以用if判断,变量值不确定。

  double price; //输入asdf

  cout << price; //输出为0

  2) cin结束后在缓存中会遗留有‘\n‘,因此会影响后续的get/getline。未不影响后续使用可以调用cin.ignore()

 

3, cout.get()和cout.getline()

 

  1) 都是用来从标准输入读入内容,可以控制读入,cin遇到回车符就会结束,并且用空格分隔变量。get和getline则不同,它们可以控制读入的长度和分隔符。

 

  2) 区别很小,都是用来读入流。同cin类似get不会从缓存中移除‘\n‘,getline则不同,可以清除。所以要么一直用cout/cin组合,要么一直用getline,getline,getline,不要用cin或者get后用get或getline。

 

4, read()和write()也是cout的函数,和标准的cout/cin不同的是它们可以控制输出和输入字节数。

 

5, 有个global函数getline挺好用的。

 

 1 #include <iostream>
 2 #include <string>
 3 #include <stdio.h>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     //cout
 9     cout << "cout test started..." << endl;
10     const char* str = "adfadf";
11     cout << "str is: " << str << endl;
12 
13     //cin
14     //read input seperated by space
15     //if input is not the cin type, cin will be false
16     cout << "cin test started..." << endl;
17     string        sname;
18     double        price;
19     cout << "Please enter name and price: " << endl;
20     cin >> sname;
21     if(!cin)
22         cout << "the name is incorrect. " << endl;
23     cin >> price;
24     if(!cin)
25         cout << "the price is incorrect. " << endl;
26     cout << "The name is: " << sname 
27         << " and the price is: " << price << endl;
28 
29     //cout ignore one \n
30     cin.ignore();
31 
32     //get, address will fail to get because get left a \n after first call
33     // // cout << "Enter your name:";
34     // char name[SIZE];
35     // // cin.get(name,SIZE);
36     // // cout << "name:" << name;
37     // // cout.put(name[0]);
38     // // cout << "\nEnter your address:";
39     // char address[SIZE];
40     // // cin.get(address,SIZE);
41     // // cout << "address:" << address << endl;
42 
43     //getline, address will succeed to get
44     const int SIZE = 15;
45     cout << "Enter your name:";
46     char name[SIZE];
47     cin.getline(name,SIZE);
48     cout << "name:" << name;
49     cout << "\nEnter your address:";
50     char address[SIZE];
51     cin.getline(address,SIZE);
52     cout << "address:" << address << endl;
53 
54     //global function getline
55     cout << "global getline test start" << endl;
56     string ss;
57     getline(cin, ss);
58     cout << "ss is: " << ss << endl;
59 
60     //read, write
61     char inchar[10];
62     cin.read(inchar, 3);
63     cout.write(inchar, 10);
64 
65 }

 

C++标准输入输出,布布扣,bubuko.com

C++标准输入输出

上一篇:Eclipse导出Java代码API


下一篇:javascript常用事件