zoukankan      html  css  js  c++  java
  • C++ Primer 第1章

    第1章-开始

    cin的缓冲区

    std::cin >> v1;输入6<Enter>,其中空格、回车、TAB等被认为是结束条件,“结束”是指从缓冲区刷新到内存,也就是交给程序去执行,cin会识别这些标志,然后丢掉它们。
    比如输入6 7<Enter>,因为6后面有空格,所以6会被从缓冲区刷新到程序,赋给v1,而7会被留在缓冲区,等待下次调用cin时,cin查看到缓冲区有数据,就不会从外界输入,而是直接从缓冲区读取7,见下面这个例子。

    std::cin >> v1 >> v2;输入6 7时,6被赋给了v1,7被赋给了v2。这个代码等价于(std::cin >> v1) >> v2;或者std::cin >> v1; std::cin >> v2;因为缓冲区还有7 (Enter),cin就会直接读取,故v2为7。

    文件结束符

    UNIX和Mac下键盘输入文件结束符(EOF):ctrl+d,Windows下:ctrl+z。有关这个的使用,可以见下面例子:

    int sum = 0, value = 0;
    while (std::cin >> value)
    	sum += value;
    std::cout << "Sum is: " << sum << std::endl;
    

    输入3 4 5 6 (ctrl+d),然后回车;程序输出Sum is: 18。第2行的while循环条件的false条件为EOF,像Enter等因为是缓存区刷新标志,而且cin会自动忽略这些标志,不做处理,所以不会使while判断语句为false。
    除了EOF,也可以输入一个无效的输入,比如要求输入int,可以输入个字符,就会自动判定为结束。

    文件重定向

    比如已经编译结束gcc test.cpp -o test生成test执行文件,我们不光可以从键盘上输入数据,也可以从文件中输入,将结果保存到文件中。test < inputfile > outputfile

    循环

    for循环也可以这样写:

    for(Sales_item item; cin >> item; cout << item << endl) {
    	sum_item += item;
    }
    

    其中cin >> item作为判断条件,当输入EOF或无效字符时为false,循环结束。而第3部分也可以不对变量做操作,如i++等,而只是打印输出等显示语句。

  • 相关阅读:
    命令行扩展功能
    bash的工作特性及其使用方法
    Linux的管理类命令及其使用方法
    命名规范
    CSS后代选择器可能的错误认识
    两个viewport的故事(第二部分)
    两个viewport的故事(第一部分)
    移动前端开发之viewport的深入理解
    mybatis 详解(五)------动态SQL
    mybatis 详解(四)------properties以及别名定义
  • 原文地址:https://www.cnblogs.com/rongyupan/p/14339352.html
Copyright © 2011-2022 走看看