文章目录
前言
在写《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]
动态声名了数组。
之后的 { } 进行了初始化。