文章目录
前言
在写《C++ Primer Plus》课后题过程中,发现的一些函数使用方法、动态内存
cin
- getline(cin, str)
 
当你的程序中使用了 字符串 时,这个时候从键盘获取就需要使用<string>头文件中的 getline()函数
语法:
getline(cin, str);
str是需要接收字符串的变量。
需要头文件 #include <string>
- cin.getline(arr, number)
 
接收字符串还可以用数组,这个时候,数组初始化需要一个足够大的数,arr[20]这种可以存储下你需要的字符串。
语法:
cin.getline(arr, number);
其中, arr是你声名的数组名,number是要从缓冲区接收几个字符。空格也不会终止(可以对比cin.get()
- 
cin.get()
从键盘接收一个值,通常用于丢弃无用的字符,例如回车之类的。
 - 
cin >> variable_name
遇到 空格、Tab、回车都会终止。
 
            
            
              c++
              
              
            
          
              int m = 0, n=0;
    cin >> m >> n;
    cin.get();
    cout << m << n;
        空白符指的是:空格和回车
cin 不会丢弃空白符,但是 >> 符号会跳过空白符。
所以上述代码中的提取出了 n 的值之后,输入流中还有一个回车,下次输入时,会先从输入流中使用这个回车键。所以,正常需要通过cin.get();来释放掉回车键,避免干扰后续输入。
动态内存
- 可以在动态声名数组的同时进行初始化。
 
注: CandyBar 是结构体。
            
            
              c++
              
              
            
          
              CandyBar *p_candybar = new CandyBar [3] {
        {"Mocha Munch", 2.3, 350},
        {"Big Rabbit", 5, 300},
        {"Joy Boy", 4.1, 430}
    };
        其中,
            
            
              c++
              
              
            
          
          CandyBar *p_candybar = new CandyBar [3]
        动态声名了数组。
之后的 { } 进行了初始化。