zoukankan      html  css  js  c++  java
  • C++之scanf_s

     1 #include <stdio.h>   //标准输入输出头文件,printf就是输出函数,只要函数有输入输出操作就需要包含此头文件。
     2 #include<stdlib.h>   //标准库头文件,system是系统库
     3 int main()  //一个源程序(即使有多个子文件,依然只能有一个main函数,否则编译提示重定义。)程序编译后,执行就是执行main里的逐行执行,直到return或右大括弧就结束了。
     4 {//c++完全兼容c
     5     //上下文给出的提示可通过上下键定位,然后tab键键入
     6     printf("%s
    %s
    ","Hello world!","zhao hengzhen");  //""是转义符,有了它之后,n就不再是n了,而是与转义符一起"
    "作为整体表示换行操作。
     7     //printf输出多个字符串,就用输出模板。("%d %d", charA,charB) d表示输入的类型,%是占位符。
     8     //此时显示为Hello worldl!
     9     //          请按任意键继续
    10     //getchar();//无参数,返回一个整数。语句执行到这一句就停止,等待键盘任意操作,然后继续往下执行。
    11     system("pause");//到这里会给出提示语句"请按任意键继续"。
    12     return 0;  //return红线说明前面语句缺少分号。
    13 }
    14 
    15 
    16 int main()
    17 {
    18     int numb,r,abs;
    19     printf("请输入一个整数: ");
    20     r = scanf_s("%d", &numb);   //&取变量的内存地址,scanf(输入,保存地址)scanf不会检查输入是否符合变量定义的缓冲区大小,因此有可能内存泄漏。
    21     //而scanf_s对字符串的输入,需要边界参数,会检查有没有存储边界,则需要一般格式("%s",&numb,numb内存长度);非字符串输入不需要边界参数因此一般用scanf_s("%d",地址)就行了。
    22     //scanf_s是有返回值的,返回的是正确读入的参数的个数。因此可以进行预判。
    23     if (r == 1)
    24         {
    25         if (numb > 0) abs = numb;
    26         else abs = -numb;
    27         printf("numb的绝对值是:  %d
    ", abs);
    28         }   //decimalism 十进制
    29     else printf("输入错误!
    ");
    30     system("pause");
    31     //main();可以调用自身嵌套下去
    32     return 0;
    33 }
    34 
    35 int main()
    36 {
    37     int a, b, c, v;
    38     int r;
    39     printf("请输入长宽高: 
    ");
    40     r = scanf_s("%d%d%d", &a, &b, &c);  
    41     /*scanf_s如果输入数值过程中遇到非法字符(如空格,回车)则默认一个输入数值完成;其他非法字符如逗号会直接报错;
    42     除此之外要严格按照""格式中进行输入,如"%d,%d"则scanf_s认为输入逗号时才算一个数值完成,否则认为输入错误。*/
    43     if (r == 3 && a>0 && b>0 && c>0)
    44         {
    45             v = volume(a, b, c);
    46             printf("长方体的体积为 %d
    ",v);
    47         }
    48     else printf("error!
    ");
    49     system("pause");
    50     return 0;
    51 }
  • 相关阅读:
    第十四章 构建自定义的同步工具(待续)
    第十三章 显示锁(待续)
    第十二章 并发程序的测试(待续)
    第十一章 性能与可伸缩性(待续)
    第十章 避免活跃性危险(待续)
    第九章 图形用户界面的并行化(待续)
    第八章 线程池的使用(待续)
    第七章 取消与关闭(待续)
    NOIp 2015真题模拟赛 By cellur925
    [USACO10MAR]伟大的奶牛聚集Great Cow Gat…【树形dp】By cellur925
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/12725215.html
Copyright © 2011-2022 走看看