精华内容
下载资源
问答
  • Where条件各筛选FROM子句输出结果并限制结果集中返回的行。条件引用表中的数据、表达式、SQL SERVER内置村量函数。Where条件还可以利用几种可能的...标准的比较运算符 说明 运算符 示例 等于 = Age

            Where条件各筛选FROM子句输出结果并限制结果集中返回的行。条件可引用表中的数据、表达式、SQL SERVER内置标量函数。Where条件还可以利用几种可能的比较运算符和通配符,如下表。此外,使用布尔AND、OR和NOT运算符可以组合多个Where条件。

    标准的比较运算符

    说明

    运算符

    示例

    等于

    =

    Age=30

    大于

    >

    Age>30

    大于等于

    >=

    Age>=30

    小于

    <

    Age<30

    关于等于

    <=

    Age<=30

    不等于

    <>或者!=

    Age<>30或Age!=30

    不小于

    !<

    Age!<30

    不大于

    !>

    Age!>30

    忠告:为提高客户端/服务器性能,让数据库引擎限制返回的行数,而不是使客户端读取不必要的数据。

    警告:包括!号的比较运算符不是ANSI标准的SQL。<>运算符可移植到SQL Server数据库以外的数据库系统,而!=运算符不可移植。

    除了标准的比较运算符外,SQL还提供了4种特殊的比较运算符:BETWEEN、IN、LIKE和IS。IS 关键字主要用来测试null值和null值。

    一般来说(但不总是),将否定的Where条件声明为肯定的条件可改善性能。

    一、使用BETWEEN搜索条件

    BETWEEN搜索条件查询范围内的值。但是该范围可能具有欺骗性,因为它是包含性的。例如1和10符合BETWEEN 1 and 10条件。当使用BETWEEN搜索条件时,第一个条件必须小于后面的值,因为BETWEEN搜索条件实际上是“大于等于第一个值,且小于第二个值”的简短表达方式。

    在下面的例子中,BETWEEN用来选择所有的数量大于10小于21的数据。

    Use WorkData  --选择数据库

    SELECT OrderID

    FROM WorkOrder

    Where  OrderID BETWEEN 11 and 20

     

    警告:BETWEEN 搜索条件通常和日期一起使用。不过,没有时间的BETWEEN运算符将查找最后一天的起始时间,而带有时间的BETWEEN运算符将向上舍入最后的毫秒以包括第二天的12:00:00:000。解决办法如下:

    Where col>=StartDate and col<Ending Date+1

    或者

    Where col>= @StartDate+' 00:00:00' and col<=@EndDate+' 23:59:59'

    (@StartDate、@EndDate为存储过程的字符型参数)

    例如:where SalesDate>=’2017-9-1’ and SalesDate<’2017-10-1’

    或者:where SalesDate>=’2017-9-1 00:00:00’ and SalesDate<’2017-9-30 23:59:59’

    二、与列表比较

    使用IN、SOME、ANY或ALL条件,WHERE条件可以比较测试值与列表中的值。每个运算符也可使用NOT来反转条件。

    IN类似于“=”运算符,因为它搜索列表中的的精确匹配。如果该值在列表中,那么比较结果为真。例如:

    Use Db1

    SELECT TABLE1

    FROM Name

    Where Name IN (’张三’,’李四’)

    以上语句等同于以下语句:

    Use Db1

    SELECT TABLE1

    FROM Name

    Where Name=’张三’OR Name=’李四

    IN运算符也搜索一系列列中的值。下面的例子就是搜索Name、City、Region或Country列中的文本“NC”:

    Use db2

    Select Name

    From dbo.table2

    Where ‘NC’IN (Name,City,Region,Country)

    IN运算符可以和NOT一起使用,以排除某些行。证明否定命题是很难的,尤其是空值包括在内时。因为空值的意思是“未知的”,正在搜索的值可能存在于列表中。下面的代码示例说明了列表中的空值如何使得无法证明’A’不在列表中:

    Select ‘Ab’ where ‘A’ Not IN (‘B’,null)

    这里没有结果,因为的空值可能是“A”。由于SQL不能从逻辑上证明“A”不在列表中,因此Where子句返回假。对于NOT IN条件来说,如果列表中有空(null)值,则每行都将被判定为假。

    三、使用LIKE搜索条件

    LIKE搜索条件使用通配符搜索字符串内的模式。但是,该项通配符与您熟悉的MS-DOS的通配符有很大区别。

     

    SQL通配符与MS-DOS通配符的区别

    说明

    SQL通配符

    MS-DOS通配符

    示例

    任意数量(0或更多)的任意字符

    %

    *

    Col like ‘A%’

    Col like ‘%A%’

    一个任意字符

    _

    ?

    Col like ‘ABD_’

    所附的字符中的一个

    []

    n/a

    Col like ‘[a-g]’

    匹配不在字符范围内

    [^]

    n/a

    Col like ‘[^w-z]’

    Col like ‘[^wxyz]’

    查找包含通配符的模式有两种可能的方法:将该通配符放入方括号内或在其之前放一个转义字符。后一种方法的技巧是,在like表达式中定义转义字符。

    当使用LIKE运算符时,要知道数据库排序规则的排序决定区分大小写及一系列字符的排列顺序。可以使用关键字COLLATE来指定LIKE选自符使用的排序规则的排序顺序。

    虽然LIKE运算可能非常有用,但它也会影响性能。索引基于列的开头部分,而不是列中的短语,如果您发现应用程序需要频繁使用LIKE运算符,则应该启用全文索引——一个强大的索引方法,该方法甚至考虑到了加权词和词尾变化,并且可以以表的形式返回结果集以供联结。

    四、多个WHERE条件

    使用布尔逻辑运算符AND、OR和NOT ,可以将多个WHERE条件组合在WHERE子句内。和乘、除自述运算符一样,布尔逻辑运算符存在俦顺序:首先是NOT,其次是AND,最后是OR,但注意用括号改变优先顺序:

    如语句:

    Select * from table1 where proname like ‘a%’ or price=10 and spec like ‘%25%’

    与语句

    Select * from table1 where (proname like ‘a%’ or price=10) and spec like ‘%25%’

    的查询结果是完全不一样的!!

     




    展开全文
  • C#5.0本质论第版,高清扫描,对C#5.0技术讲比较详细,第1章 C#概述 1 1.1 Hello,World 1 1.2 C#语法基础 3 1.2.1 C#关键字 3 1.2.2 标识符 4 1.2.3 类型定义 5 1.2.4 Main 6 1.2.5...
  • 最后,还将学习如何使用标准的I/O方法来读取和写入字符串。 附录A:计数系统 本附录讨论八进制数、十六进制数和二进制数。 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII...
  • 最后,还将学习如何使用标准的I/O方法来读取和写入字符串。 附录A:计数系统 本附录讨论八进制数、十六进制数和二进制数。 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII...
  • 最后,还将学习如何使用标准的I/O方法来读取和写入字符串。 附录A:计数系统 本附录讨论八进制数、十六进制数和二进制数。 附录B:C++保留字 本附录列出了C++关键字。 附录C:ASCII字符集 本附录列出了ASCII...
  • 查找条件:制定查找的标准,文件名、大小、类型、日期等等 处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上 查找条件 根据文件名查找 -name 指定名称,可以使用正则 -iname 忽略大小写 -links n 引用...

    find

    是linux里面的一个实时查找工具,通过制定路径完成文件查找

    find [options] … [查找路径] [查找条件] [处理动作]

    查找路径:查找的位置,默认是当前文件夹

    查找条件:制定查找的标准,文件名、大小、类型、日期等等

    处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上

    查找条件

    • 根据文件名查找

      • -name 指定名称,可以使用正则
      • -iname 忽略大小写
      • -links n 引用次数为n的文件
      • -regex 后面跟完整路径,而不是文件名, 必须整个路径完全匹配
    • 制定搜索的层级

      • -maxdepth level 最大的搜索深度,指定的目录为第1层
      • -mindepth level 最小的搜索深度,包括level层
    • 根据属主、属组来查找

      • -user username 查找属主为username的文件
      • -group groupname 查找属组为groupname的文件
      • -uid id 查找属主为id的文件
      • -gid id 查找属组为id的文件
      • -nouser 查找没有属主的文件
      • -nogroup 查找没有属组的文件
    • 根据文件类型 -type

      • d 目录
      • f 文件
      • l 符号链接
      • s 套接字
      • b 块设备
      • c 字符设备
      • p 管道文件
    • 空文件或者空目录

      • -empty
    • 条件

      • 与 -a
      • 或 -o
      • 非 -not
    • 摩根定律

      • 非(A或者B) 非A 且非B
      • 非(A且B)非A或非B
    • 排除目录

      • -path
    • [root@localhost test]#find /etc -name *_config
      /etc/ssh/ssh_config
      /etc/ssh/sshd_config
      [root@localhost test]#find /etc -path /etc/ssh -name *_config
      
    • 按照大小来查找

      • -size # (#-1,#] 不包括#-1,包括#
      • -size -# [0,#-1] 包括#-1
      • -size +# (#,…) 包括#
    • 按照时间来查找

      • -atime # [#,#+1)
      • -atime -# (0,#)
      • -atime +# [#+1,…]
      • 查找7天以后的文件 find -atime +7
      • -mtime
      • -ctime
      • 以分钟为单位
        • -amin
        • -mmin
        • -cmin

    处理动作

    • -print 默认的处理动作,显示在屏幕上
    • -ls 类似于ls -l 显示长格式
    • -delete 删除查找到的文件
    • -fls file 将查找的结果以长格式保存到文件中
    • -ok command {} ; 对每一个查找到的文件执行command命令,在执行命令之前要先提示用户是否要执行
      • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7R1BBmHt-1602376669848)(img-20QmJAF9-1602376589306)
    • -exec command {} ; 对查到的每一个文件执行command命令,不需要确认,一次性交给后面命令处理

    xargs

    • 有的命令不支持管道 (条件)
    • 命令参数过长 (条件)
    • xargs 将管道前面的内容一条一条的交给后面命令处理
    • 一般会跟find使用

    linux三贱客

    grep

    awk

    sed

    grep

    grep [option] “模式” file

    option

    --color=auto 对匹配到的行添加颜色
    -v 取反
    -i 不区分大小写
    -n 查找的内容增加行号
    -c 打印匹配到的行数
    -o 只显示匹配到的文字
    -q 静默模式
    -A # after 向下显示#行
    -B # before 向上显示#行
    —C # context 上下分别显示#行
    -e 或者 grep -e 'user' -e 'root' passwd
    -E 扩展正则表达式
    -F 不使用正则表达式
    -r 递归
    -w 匹配整个单词
    

    正则表达式元字符

    • 字符匹配

      • . 任意单个字符
      • [] 匹配指定范围内的任意单个字符 [0-9] [a-z] [A-Z]
      • [^] 取反
      • [:upper:] 大写字母
      • [:lower:] 小写字母
      • [:alnum:] 字母和数字
      • [:alpha:] 大小写字母
      • [:digit:] 数字
      • [:black:] 空白
      • [:punct:] 标点符号
    • 匹配次数

      • * 表示任意次数
      • .* 任意字符任意次数
      • ? 表示0或者1次
      • \+ 至少一次
      • \{n\} 表示n次
      • \{m,n\} 最少m次,最多n次
      • \{n,\} 至少n次
      • \{,n\} 至多n次
    • 位置锚定

      • ^ 开头
      • $结尾
      • ^$ 空行
      grep -v "^#" /etc/ssh/sshd_config |grep -v "^$" 显示不以#开头并且不是空行
      
    • 分组

      grep "\(c\|C\)at" a
      
    • 向后引用

      • \1 前面第一个括号出现的内容匹配完成之后再后面在出现一次
      • \2
    • 扩展正则表达式

      • 与正则表达式的区别是不需要转义

    压缩

    gzip

    压缩文件

    gzip [option]... file
    -c 将压缩结果输出到屏幕,保留原来的文件
    gzip -c passwd > passwd.gz
    -1-9 指定压缩比,默认9
    -d 解压 # *********
    zcat 不解压的情况下查看压缩比内的内容
    gunzip 解压
    

    bzip2

    bzip [option] file

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LZWrhOyI-1602376654552)(img-CtBzdD7m-1602376589308)]

    直接压缩
    bunzip2 解压
    -k 保留原来的文件
    -d 解压
    -1-9 指定压缩比
    bzcat 不解压的情况下查看压缩包的内容
    

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JMkLLILr-1602376645383)(img-0nFPSzaa-1602376589309)]

    xz

    xz [option] file

    unxz 解压
    -k 保留原来的文件
    -d 解压
    -1-9 指定压缩比
    xzcat 不解压直接查看
    

    zip

    zip [option] zipfile 要压缩的文件
    zip -r network.zip /etc/sysconfig/network-scripts 
    unzip network.zip
    

    tar

    归档工具

    归档
    tar cpvf etc.tar /etc 
    c 创建
    v 显示过程
    f 指定归档文件
    p 把原来的属性也带过来
    tar -r -f etc.tar /etc 追加
    tar -t -f etc.tar 查看归档文件内的内容
    tar xf etc.tar  解压文件
    tar xf etc.tar -C 
    -z 使用gzip压缩
    -j 使用bzip2压缩
    -J 使用xz压缩
    --exclude 排除文件
    
    

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OKOwZznK-1602376602422)(img-hJMSpC8F-1602376589310)]
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ip0lMQRl-1602376622173)(img-TZITLVPA-1602376589311)]

    split

    split -b 指定大小 文件(只能为文件) 切割以后的名字
    -d 指定后缀为数字
    -a 指定后缀几位
    cat 切割后的文件 > 新文件
    
    
    展开全文
  • 第1部分是《C程序设计(第版)》一书习题和参考解答,包括了该书各章全部习题,对全部编程习题都给出了参考解答,共计132程序; 第2部分是深入学习C程序设计,包括预处理指令、位运算和C程序案例; 第3部分是...
  • 在程序中,常量是可以不经说明而直接引用的,而变量则必须先说明后使用。 整型量 整型量包括整型常量、整型变量。整型常量就是整常数。在C语言中,使用整常数有八进制、十六进制和十进制三种。 整型常量 1.八...
  • 通过我们已经学过知识,你可以编写一最简单程序输出一也许是程序世界中最有名词语: echo "Hello World!"; ?> First PHP page // Single line C++ style comment /* printing the message */ ...
  • J2EE本身是一个标准,一为企业分布式应用开发提供的标准平台。 J2EE也是一框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。 33、我们在web应用开发过程中经常遇到输出某种编码字符,如iso8859-1等,...
  • C++中cin 深入理解

    2018-05-09 22:28:57
    参考网址: C++中 cin深入理解 ...此外,读写一IO对象都会改变其状态,因此传递和返回的引用都不能是const,否则无法读写。 条件状态: IO流有条件状态,分别用位来控制。 cin.badbit : ...

    参考网址:
    C++中 cin的深入理解
    C++中cin的详细用法
    C++:cin、cin.getline()、getline()的用法

    一、cin简介

    C++中的cin是一个 istream对象,从标准输入中读取数据,在iostream头文件中定义。

    流对象不能拷贝或赋值。此外,读写一个IO对象都会改变其状态,因此传递和返回的引用都不能是const的,否则无法读写。

    条件状态:
    IO流有四种条件状态,分别用位来控制。
    cin.badbit : 001 1 表示系统级错误,一旦被置位,流就无法再使用了
    cin.eofbit : 010 2 表示流已经读完,到达尾部了
    cin.failbit: 100 4 可恢复错误,如期望读取数值却读出一个字符等错误,或者已经到达流的尾部
    cin.goodbit: 000 0 可用状态

    当一个流遇到数据类型不一致的错误而不可用时,我们可以使其恢复为有效状态(置换eof和fail位)

    也可通过调用成员函数查看流的状态,如:cin.eof() cin.fail() cin.bad() cin.good() //相应状态为真则返回true,反则为false

    二、cin从缓冲区读取数据

    cin从缓冲区读取数据,有多种方式,如操作符 >> 、函数getline()、get()等

    1. >>

    • 根据后面的变量的类型读取数据
    • 读取时结束条件:enter, space, tab
    • 对结束符的处理:丢掉
    #include <iostream>  
    using namespace std;  
    int main()  
    {  
       char str1[10], str2[10];  
       cin>>str1;  
       cin>>str2;  
       cout<<str1<<endl;  
       cout<<str2<<endl;  
       return 0;  
    }  
    • 当遇到类型不一致时,流处于不可用状态,若需继续使用这个流,需恢复流的有效状态。
    cin.clear( cin.rdstate() & ~cin.failbit & ~cin.badbit );   //cin.rdstate()表示流当前的状态

    2. get

    • 输入结束条件:换行符
    • 对结束符处理:不丢掉
    #include <iostream>  
    using namespace std;  
    int main()  
    {  
      char c1, c2;  
       cin.get(c1);  
       cin.get(c2);  
        cout<<c1<<" "<<c2<<endl; // 打印两个字符  
        cout<<(int)c1<<" "<<(int)c2<<endl; // 打印这两个字符的ASCII值(用cout打印char型的ASCII值必须要强制转换)  
        return 0;  
    }  
    

    运行结果:
    输入:a b
    结果:c1被赋值为a, c2被赋值为空格。
    这里写图片描述
    分析:即get函数只会从缓冲区中取字符,而不会过滤掉任何空格换行符等。(可自己运行只输入a和换行符的情况)

    #include <iostream>  
    
    int main()  
    {  
        int c1, c2;  
        c1=cin.get();  
        c2=cin.get();  
        cout<<c1<<" "<<c2<<endl; // 打印两个字符  
        cout<<(int)c1<<" "<<(int)c2<<endl; // 打印这两个字符的ASCII值  
    
        cin >> c1;  
        cin >> c2;  
        cout<<c1<<" "<<c2<<endl; // 打印两个字符  
        cout<<(int)c1<<" "<<(int)c2<<endl;  
        return 0;  
    }  

    运行结果:
    输入:123,换行,结果打印:两行49,50。然后输入4,换行,结果打印:两行3 4。
    结果:
    这里写图片描述
    分析:
    cin.get()只是读取字符,即使输入数字,也是char型,再转换为int型。第一次c1,c2被赋值为’1’和’2’,此时缓冲区还有一个3和换行符,cin流仍然有效,再次调用cin流,给c1赋值为缓冲区的3,过滤掉换行符,再次调用cin时,缓冲区已经没有字符了,则从键盘读取,提示用户输入,输入4赋值给c2。此时的c1和c2直接是int型的。

    3.getline()

    getline读取一行,以换行符结束,丢掉换行符。
    还可指定读取多少个字符到数组,读取完后剩余的字符放在流中,流被置为无效状态,可以通过置换使他们变有效,然后继续读取,见例子。

    #include <iostream>  
    int main()  
    {  
        char str[10];  
        cin.getline(str,5);  
        cout << str << endl;  
        cout << "read state: " << cin.rdstate() << endl;  
        cin.clear(cin.rdstate() & ~cin.failbit);  
        cout << "read state: " << cin.rdstate() << endl;  
        cin.getline(str,5);  
        cout << str << endl;  
        return 0;  
    }  

    运行结果:
    输入:abcdefghijklmnop
    结果:
    这里写图片描述

    4.cin之后使用getline会出现空行,调用cin.ignore()即可

    #include <iostream>  
    #include <string>  
    
    using namespace std;  
    int main()  
    {  
        int n;  
        cin >> n;  
        cin.ignore(); //如果注释掉  
        string c;  
        getline(cin, c);  
        cout << c << endl;  
        return 0;  
    }  

    运行结果:
    如果注释掉cin.ignore(),输入2\enter,输出空行。
    这里写图片描述
    不注释,输入2\enterA,输出A。
    这里写图片描述
    因为cin有时会以\n作为结束标志,但它还在缓存区中,而getline以\n为结束标志,会读取上一次输入得到的\n,得到一个空行。
    cin.ignore(1000, ‘\n’)的含义是把缓冲区内从当前字符开始直到’\n’之前字符(如果有1000个的话)忽略掉,实际上你这里假设一行不会超过1000个字符,所以含义是忽略一行。

    5. 清空输入流缓冲区中错误字符

    // cingolf.cpp -- non-numeric input skipped
    #include <iostream>
    const int Max = 5;
    int main()
    {
        using namespace std;
    // get data
        int golf[Max];
        cout << "Please enter your golf scores.\n";
        cout << "You must enter " << Max << " rounds.\n";
        int i;
        for (i = 0; i < Max; i++)
        {
            cout << "round #" << i+1 << ": ";
            while (!(cin >> golf[i])) {
                cin.clear();     // reset input
                while (cin.get() != '\n')
                    continue;    // get rid of bad input
                cout << "Please enter a number: ";
            }
        }
    // calculate average
        double total = 0.0;
        for (i = 0; i < Max; i++)
            total += golf[i];
    // report results
        cout << total / Max << " = average score "
                << Max << " rounds\n";
        // cin.get();
        // cin.get();
        return 0; 
    }
    

    运行结果:
    这里写图片描述

    6. getline()

    用法:接收一个字符串,可以接收空格并输出,需包含#include <string>

    #include<iostream>
    #include<string>
    using namespace std;
    main ()
    {
        string str;
        getline(cin,str);
        cout<<str<<endl;
    }

    输入:jkljkljkl
    输出:jkljkljkl

    输入:jkl jfksldfj jklsjfl
    输出:jkl jfksldfj jklsjfl

    注意:cin.getline()属于istream流,而getline()属于string流,是不一样的两个函数

    展开全文
  • C++中 cin深入理解

    万次阅读 2017-03-08 15:54:19
    C++中cin是一 istream对象,从标准输入中读取数据,在iostream头文件中定义。 流对象不能拷贝或赋值。此外,读写一IO对象都会改变其状态,因此传递和返回的引用都不能是const,否则无法读写。 条件状态: ...

    C++中的cin是一个 istream对象,从标准输入中读取数据,在iostream头文件中定义。

    流对象不能拷贝或赋值。此外,读写一个IO对象都会改变其状态,因此传递和返回的引用都不能是const的,否则无法读写。


    条件状态:

    IO流有四种条件状态,分别用位来控制。

    cin.badbit :  001   1   表示系统级错误,一旦被置位,流就无法再使用了

    cin.eofbit :   010    2   表示流已经读完,到达尾部了

    cin.failbit:    100    4     可恢复错误,如期望读取数值却读出一个字符等错误,或者已经到达流的尾部

    cin.goodbit: 000   0   可用状态


    当一个流遇到数据类型不一致的错误而不可用时,我们可以使其恢复为有效状态(置换eof和fail位)

    cin.clear( cin.rdstate() & ~cin.failbit & ~cin.badbit );   //cin.rdstate()表示流当前的状态

    也可通过调用成员函数查看流的状态,如:cin.eof()  cin.fail() cin.bad()  cin.good()  //相应状态为真则返回true,反则为false


    cin从缓冲区读取数据,有多种方式,如操作符 >>  函数getline()、get()等

    1. >>

    根据后面的变量的类型读取数据

    读取时结束条件:enter, space, tab

    对结束符的处理:丢掉

    #include <iostream>
    using namespace std;
    int main()
    {
       char str1[10], str2[10];
       cin>>str1;
       cin>>str2;
       cout<<str1<<endl;
       cout<<str2<<endl;
       return 0;
    }
    当遇到类型不一致时,流处于不可用状态,若需继续使用这个流,需恢复流的有效状态。

    2. get

    输入结束条件:换行符

    对结束符处理:不丢掉

    #include <iostream>
    using namespace std;
    int main()
    {
      char c1, c2;
       cin.get(c1);
       cin.get(c2);
        cout<<c1<<" "<<c2<<endl; // 打印两个字符
        cout<<(int)c1<<" "<<(int)c2<<endl; // 打印这两个字符的ASCII值
        return 0;
    }


    输入a b,结果c1被赋值为a, c2被赋值为空格。即get函数只会从缓冲区中取字符,而不会过滤掉任何空格换行符等。(可自己运行只输入a和换行符的情况)

    #include <iostream>
    
    int main()
    {
        int c1, c2;
        c1=cin.get();
        c2=cin.get();
        cout<<c1<<" "<<c2<<endl; // 打印两个字符
        cout<<(int)c1<<" "<<(int)c2<<endl; // 打印这两个字符的ASCII值
    
        cin >> c1;
        cin >> c2;
        cout<<c1<<" "<<c2<<endl; // 打印两个字符
        cout<<(int)c1<<" "<<(int)c2<<endl;
        return 0;
    }

    测试:输入123,再输入4的结果。cin.get()只是读取字符,即使输入数字,也是char型,再转换为int型。第一次c1,c2被赋值为'1'和'2',此时缓冲区还有一个3和换行符,cin流仍然有效,再次调用cin流,给c1赋值为缓冲区的3,过滤掉换行符,再次调用cin时,缓冲区已经没有字符了,则从键盘读取,提示用户输入,输入4赋值给c2.此时的c1和c2直接是int型的。

    123       
    49 50
    49 50
    4
    3 4
    3 4


    3.getline()

    getline读取一行,以换行符结束,丢掉换行符。还可指定读取多少个字符到数组,读取完后剩余的字符放在流中,流被置为无效状态,可以通过置换使他们变有效,然后继续读取,见例子。

    #include <iostream>
    int main()
    {
        char str[10];
        cin.getline(str,5);
        cout << str << endl;
        cout << "read state: " << cin.rdstate() << endl;
        cin.clear(cin.rdstate() & ~cin.failbit);
        cout << "read state: " << cin.rdstate() << endl;
        cin.getline(str,5);
        cout << str << endl;
        return 0;
    }



    4.cin之后使用getline会出现空行,调用cin.ignore()即可

    #include <iostream>
    #include <string>
    
    using namespace std;
    int main()
    {
    	int n;
    	cin >> n;
    	cin.ignore(); //如果注释掉
    	string c;
    	getline(cin, c);
    	cout << c << endl;
            return 0;
    }

    如果注释掉cin.ignore(),输入2\enter,输出空行。

            不注释,输入2\enterA,输出A。

    因为cin有时会以\n作为结束标志,但它还在缓存区中,而getline以\n为结束标志,会读取上一次输入得到的\n,得到一个空行。

    cin.ignore(1000, '\n')的含义是把缓冲区内从当前字符开始知道'\n'之前字符(如果有1000个的话)忽略掉,实际上你这里假设一行不会超过1000个字符,所以含义是忽略一行


    展开全文
  • 语音识别MATLAB实现

    热门讨论 2009-03-03 21:39:18
    四个c1108型三极管来控制小车遥控手柄前、后、左、右触点通断。从计算机并口引出四根信号线,与三极管相连,与前、后、左、右一一对应。若判断出指令信号后,则相应信号线上输出高电平,该电路导通,发送...
  • excel使用

    2012-11-25 17:06:01
    (3)创建条件格式 可以使用六种逻辑符号来设计一个条件格式:>(大于)、>=(大于等于)、<(小于)、(小于等于)、=(等于)、(不等于),如果你觉得这些符号不好记,就干脆使用“>”或“>=”号来表示。...
  •  2.2.1 标准的输入和输出对象  2.2.2 输出格式控制  2.2.3 读/写文件  2.3 最常用的开发环境Visual Studio  2.3.1 Visual C++的常用菜单  2.3.2 Visual C++的常用视图  2.4 C++世界旅行必备的物品  2.4.1 ...
  •  SessionBean: Stateless Session Bean 生命周期是由容器决定,当客户机发出请求要建立一Bean实例时,EJB容器不一定要创建一Bean实例供客户机调用,而是随便找一现有实例提供给客户机。...
  • LINGO软件学习

    2009-08-08 22:36:50
    集部分可以放置于模型任何地方,但是一集及其属性在模型约束中被引用之前必须定义了它们。 2.3.1 定义原始集 为了定义一原始集,必须详细声明: •集名字 •可选,集成员 •可选,集成员属性 定义一...
  • 4.2.3 OR——判断多个条件中是否至少有一个条件成立 155 4.2.4 XOR——判断多个条件中是否有一个条件成立 156 4.2.5 IF——根据条件判断而返回不同结果 156 4.2.6 IFNA——判断公式是否出现#N/A错误 158 4.2.7 ...
  • 一个大商品中心服务可以被拆为类目、商品、价格、库存四个微服务。这样每个服务职责专注,接口单一。每个服务可以有自己存储,甚至可以用不同存储,比如商品适合Elasticsearch搜索引擎&...
  • JavaScript王者归来

    2013-01-10 11:30:48
    1.7.1 像程序员一样地思考--程序员的四个境界 1.7.2 吝惜你的代码 1.7.3 学会在环境中调试 1.7.4 警惕那些小缺陷 1.7.5 思考先于实践--不要轻易动手写代码 1.7.6 时刻回头--圣贤也无法完全预知未来 1.8 关于本书的...
  • (11)C++11新标准的模板新特性和新语法,以及C++11新标准中新增的语言特性解读。 前: C++语言支持多种编程范式,其中,面向过程与面向对象最为人熟悉,相关书籍也不胜枚举,唯独模板编程少有书籍谈及,即使谈及,...
  • EXCEL 2007 宝典 附光盘文件

    热门讨论 2010-04-02 14:43:05
    frequency distribution.xlsx:一个演示创建频率分布的四种方法的工作簿。 multiple criteria counting.xlsx:一个演示使用多个条件计算公式的工作簿。 Chapter 15 basic lookup examples.xlsx:一个演示基本的...
  • 此文件是对该文件夹中其余四个文件说明。 (1)名为“Pedestriandetection”文件夹中是用VS2013+OpenCV2.4.13实现HOG+SVM算法 工程文件,训练得到数据文件也包含在其中,“HOGDetectorForOpenCV.txt...
  • 本书侧重于函数实战应用,共分12章,前10章分别介绍了数学函数、统计函数、日期和时间函数、文本函数、逻辑函数、查找和引用函数、财务函数、信息函数以及数据库和三角函数在实战中应用;第11 章介绍了函数与...
  • 谭浩强教授创造了3世界纪录:(1)20年来他(及和他人合作)共编著出版了130本计算机著作,此外主编了250多本计算机书籍,是出版科技著作数量最多人。(2)他编著和主编书发行量超过4500万册,是读者最多...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    第三章 编写第一应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第章 数 据 类 型 .28 4.1 值 类 型...
  • c++11多线程库

    2017-05-10 16:29:25
    标准线程库,c++11引入,包含原子操作库、互斥锁、条件变量。。。   一、线程库   创建线程的四种方法:   1. 通过全局函数创建线程 线程类的构造函数是变参构造函数,第一参数是线程函数,后面的参数为线程...
  • C#微软培训资料

    2014-01-22 14:10:17
    第三章 编写第一应用程序 .20 3.1 Welcome 程序 .20 3.2 代 码 分 析 .20 3.3 运 行 程 序 .23 .4 添 加 注 释 .25 3.5 小 结 .27 第二部分 C#程序设计基础.28 第章 数 据 类 型 .28 4.1 值 类 型...
  • 【工作表拆分】 将当前工作表某列数据按指定条件拆分成多工作表,可以用任意列数据以及选定数据做为拆分条件。 【行列奇偶选择】 可视化对当前工作表行与列进行快速奇偶行或奇偶列快速选定操作。 【查找...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 146
精华内容 58
关键字:

引用标准的四个条件