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()函数, 不会出现被相同分隔符绊住的情况;

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

  • 相关阅读:
    Android 学习笔记之WebService实现远程调用+内部原理分析...
    Android学习笔记之Json的使用....
    Android学习笔记之DocumentBuilder的使用....
    Android学习笔记之ExecutorService线程池的应用....
    Android学习笔记之SoftReference软引用...
    windows系统获取进程的pid号并终止
    Linux系统的时间比北京时间慢12个小时的处理方案(将EDT时区改为CST)
    将java的jar包作为windows的服务来启动
    linux初始化shell脚本
    linux中网络部分的总结
  • 原文地址:https://www.cnblogs.com/richard-c-java/p/3292142.html
Copyright © 2011-2022 走看看