zoukankan      html  css  js  c++  java
  • 比较:I/O成员函数getline() 与 get()(第二种用法)的用法异同

    首次,定义三个字符数组;

    char a[20];

    char b[20];

    char c[20];

    其次,建立一个文件——"Test 2.txt";

    其中的字符内容:ffffff,ssssssssss;ggggggg,eeeeeee(ps:就一行)

    再次,对输入进行文件类定向;

    ifstream fin("Test 2.txt");

    最后,进行对比研究;

     

    表格 1

    代码A:

    fin.get(a, 20, ',');
    cout<<a<<endl;
    fin.get(a, 20, ',');    
    cout<<a<<endl;
    fin.get(a, 20, ',');
    cout<<a<<endl;

    输出:

    fffff

    Press any key to continue

    (此后所有均是完整的输出)。

    代码B:

    fin.get(a, 20, ',');
    cout<<a<<endl;
    fin.get(a, 20, ';');    
    cout<<a<<endl;
    fin.get(a, 20, ',');
    cout<<a<<endl;

    输出:

    ffffff

    ,ssssssssss

    ;ggggggg

    Press any key to continue

    代码C:

    fin.get(a, 20, ',');
    cout<<a<<endl;
    fin.get(b, 20, ',');    
    cout<<b<<endl;
    fin.get(c, 20, ',');
    cout<<c<<endl;

    输出:

    ffffff

    Press any key to continue

    代码D:

    fin.get(a, 20, ',');
    cout<<a<<endl;
    fin.get(b, 20, ';');      
    cout<<b<<endl;
    fin.get(c, 20, ',');
    cout<<c<<endl;

    输出:

    ffffff

    ,ssssssssss

    ;ggggggg

    Press any key to continue

    代码E:

    fin.getline(a, 20, ',');
    cout<<a<<endl;
    fin.getline(a, 20, ',');    
    cout<<a<<endl;
    fin.getline(a, 20, ',');
    cout<<a<<endl;

    输出:

    ffffff

    ssssssssss;ggggggg

    eeeeeee

    Press any key to continue

    代码F:

    fin.getline(a, 20, ',');
    cout<<a<<endl;
    fin.getline(a, 20, ';');
    cout<<a<<endl;
    fin.getline(a, 20, ',');
    cout<<a<<endl;

    输出:

    ffffff

    ssssssssss

    ggggggg

    Press any key to continue

    代码G:

    fin.getline(a, 20, ',');
    cout<<a<<endl;
    fin.getline(b, 20, ',');
    cout<<b<<endl;
    fin.getline(c, 20, ',');
    cout<<c<<endl;

    输出:

    ffffff

    ssssssssss;ggggggg

    eeeeeee

    Press any key to continue

    代码H:

    fin.getline(a, 20, ',');
    cout<<a<<endl;
    fin.getline(b, 20, ';');
    cout<<b<<endl;
    fin.getline(c, 20, ',');
    cout<<c<<endl;

    输出:

    ffffff

    ssssssssss

    ggggggg

    Press any key to continue

     观察表格 1可得:

    1. 无论get()函数还是getline()函数,它们输入的结果与前后数组(接受字符的容器)是否一致无关;

        对比表格中(colum1, colum3),以及(colum2, colum4);

      2.  对于get()函数,连续三次输入,如果某一个输入被一个分隔符(如, ',') “绊住,那么后面按照相同分隔符的输入也被绊住,输出空值;

        对比表格中第一行(colum1, colum2, colum3);

      3.  对于get()函数,前后两个输入的分隔符不相同,后一个会继承前一个的分隔符;

        观察表格中第一行的(colum2 & colum4);

      4.  对于getline()函数,不会继承分隔符号;

        观察第二列的两行或者第四列的两行;

      5.  对于getline()函数, 不会出现被相同分隔符绊住的情况;

        观察第一列的上下两行或者第三列的上下两行;

  • 相关阅读:
    JAVA中对null进行强制类型转换
    git 初次push
    svn还原与本地版本回退
    后台用map接收数据,报类型转换错误
    eclipse从svn导入静态文件
    APP项目下载及运行
    Yii2中如何使用CodeCeption
    开发资源整合
    工作流设计参考(包括PHP实现)
    PHP单元测试利器:PHPUNIT初探
  • 原文地址:https://www.cnblogs.com/richard-c-java/p/3292142.html
Copyright © 2011-2022 走看看