网站开发毕业设计任务书范文,网站建设要费用多少,成为网站建设人员措施,南京装修公司十大排名榜文章目录 前言cin1. getline(cin, str)2. cin.getline(arr, number)3. cin.get()4. cin variable_name5. cin.clear(); 动态内存1. 可以在动态声名数组的同时进行初始化。 数组1. arr[0]2. arr3. 数组输入指定长度和非数字时#xff0c;停止 前言
在写《C… 文章目录 前言cin1. getline(cin, str)2. cin.getline(arr, number)3. cin.get()4. cin variable_name5. cin.clear(); 动态内存1. 可以在动态声名数组的同时进行初始化。 数组1. arr[0]2. arr3. 数组输入指定长度和非数字时停止 前言
在写《C Primer Plus》课后题过程中发现的一些函数使用方法、动态内存、数组
cin
cin是istream类输入流的其一的一个对象。 抽取运算符 ( ) () ()cinrplace.x返回的也是istream对象。 像 cin rplace.x 和cin rplace.x rplace.y 都将返回一个 istream对象。所以最终返回的结果是cin。 当 cin 被用于测试表达式时根据输入是否成功被转换为 bool 值 true 和 false。
struct rect
{double x;double y;
};int main()
{using namespace std;rect rplace;cout Enter the x and y values: ;while (cin rplace.x rplace.y){...}
...对于结构体rect中x被设置为了double数值型所以当输入不是数值例如字符时将返回 false跳出循环。 也可以设置一些特殊的数值例如有些条件可以考虑负数为终止条件。但是 cin 可以接收任何有效数字的输入。
1. getline(cin, str)
当你的程序中使用了 字符串 时这个时候从键盘获取就需要使用string头文件中的 getline()函数
语法 getline(cin, str); str是需要接收字符串的变量。
需要头文件 #include string
2. cin.getline(arr, number)
接收字符串还可以用数组这个时候数组初始化需要一个足够大的数arr[20]这种可以存储下你需要的字符串。 语法 cin.getline(arr, number); 其中 arr是你声名的数组名number是要从缓冲区接收几个字符。空格也不会终止可以对比cin.get()
3. cin.get()
从键盘接收一个值通常用于丢弃无用的字符例如回车之类的。
4. cin variable_name
遇到 空格、Tab、回车都会终止。 int m 0, n0;cin m n;cin.get();cout m n;空白符指的是空格和回车 cin 不会丢弃空白符但是 符号会跳过空白符。 所以上述代码中的提取出了 n 的值之后输入流中还有一个回车下次输入时会先从输入流中使用这个回车键。所以正常需要通过cin.get()来释放掉回车键避免干扰后续输入。
5. cin.clear();
如果之前的输入有错误为了不终止程序需要用
cin.clear();清除错误状态。 比较优秀的代码 “关于清除错误输入保证输入正确” 这是一个求 阶乘 的代码前面需要保证输入的是数值型而且需要判断是大于零的值。 int n;cout Enter an integer number: ;while (!(cin n)){cin.clear();while (cin.get() ! \n){continue;}cout Please enter an integer number: ;}if (n 0){cout Negative number dont have factorial. endl;exit(1);}动态内存
1. 可以在动态声名数组的同时进行初始化。
注 CandyBar 是结构体。 CandyBar *p_candybar new CandyBar [3] {{Mocha Munch, 2.3, 350},{Big Rabbit, 5, 300},{Joy Boy, 4.1, 430}};其中
CandyBar *p_candybar new CandyBar [3]动态声名了数组。 之后的 { } 进行了初始化。
数组
数组的指针。
1. arr[0]
数组名是数组第一个元素的地址。例如数组名为 arr 则
arr arr[0];取的是第一个元素这个时候 ( a r r [ 0 ] ) 1 (\arr[0])1 (arr[0])1表示的的是第二个元素增加了一个元素的长度。等价于 a r r 1 arr1 arr1)
2. arr
arr;arr 表示整个数组的地址虽然也是指向第一个元素的位置但是表示的长度是整个数组的长度。 也就是说 ( a r r ) 1 (\arr)1 (arr)1 增加了一个数组的长度而不是增加一个元素的长度。
3. 数组输入指定长度和非数字时停止 Fill_array()将double数组和长度作为参数。当数组被填满或者用户输入了非数字时输入将停止返回实际输入多少数字。 int Fill_array(double data[], int max_num) {std::cout Enter double numbers (non-digital to quit): std::endl;int i 0;while ((i max_num) (std::cin data[i]))i;// return the size of arrayreturn i;
}