zoukankan      html  css  js  c++  java
  • 文件操作(输出倒数第二行、逆序输出)

    1.输出倒数第二行
    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <fstream>

    using namespace std;
    int main(){
        //cin.imbue(locale("chs"));
        cout.imbue(locale("chs"));//控制台输出中文
        int i,len=1;
        char ch=NULL;
        ifstream infile("aaa.txt");
        while(ch!=EOF){        
            ch=infile.get();
            if(ch==' '){
                len++;//判断有几行,当然也可用getline来判断
            }
        }
        cout<<len<<endl;
        infile.close();
        infile.open("aaa.txt");//需要重新打开文件,否则指针已到文件末尾
        string temp;
        for(i=0;i<len-1;i++){//输出倒数第2行
            getline(infile,temp,' ');
        }

        cout<<temp<<endl;
        

        system("pause");
        return 0;
    }

    2.逆序输出
    #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <fstream>

    using namespace std;
    int main(){
        //cin.imbue(locale("chs"));
        cout.imbue(locale("chs"));//控制台输出中文
        int i=0,len=0,j=0;//j用于计数
        char ch=NULL,chs[2];//chs[]数组用于保存中文
        ifstream infile("aaa.txt",ios::binary);//以二进制打开文件,否则计算文件长度会有问题

    //以二进制打开, 它与文本格式的差别在于,文本格式会增加一些格式上的信息,比如换行' '用文本输出是两个字节0x0Ah,0x0Dh. 而如用二进制输出则是0x0Ah


        while(ch!=EOF){        
            ch=infile.get();

                len++;
        }
        infile.close();
        infile.open("aaa.txt",ios::binary);
      

      for(i=1;i<=len;i++){
        infile.seekg(-i,ios::end);
        ch=infile.get();//如果文件里面包含中文,则输出是乱码,为啥?显而易见,如:ch[0]+ch[1]='中' ,ch[1]+ch[0]=毛线啊。。。

        //下面判断是否是中文,中文的ascii码是大于127的
        if(ch&0x80){
                  chs[j]=ch;
                  j++;
                  if(j==2){
                      cout<<chs[1]<<chs[0];
                      j=0;
                  }
             }else{
                  j=0;
                  cout<<ch;
             }
      }

        system("pause");
        return 0;
    }

  • 相关阅读:
    2019最新windows 10永久激活码 win10专业版密钥 win10通用序列号
    安装Office2016遇到“无法流式传输Office”问题
    windows cannot find powershell.exe windows 7
    AI illustrator 如何裁剪图片(扣取局部区域)
    64位 windows2008 R2 上安装32位oracle 10g 的方法
    计算器进行进制数之间的换算
    Linux服务器上监控网络带宽的18个常用命令
    iOS 如何判断一个点在圆、方框、三角形区域内?
    CircularSlider半弧形滑动条
    iOS圆弧渐变进度条的实现
  • 原文地址:https://www.cnblogs.com/duyy/p/3714168.html
Copyright © 2011-2022 走看看