zoukankan      html  css  js  c++  java
  • 128.C++文件操作小结

    打开后缀参数

      1 #include <fstream>
      2 #include <iostream>
      3 using namespace std;
      4 
      5 //文本读写
      6 //文件写入
      7 void main1()
      8 {
      9     //写入到文件 in读o写
     10     //创建一个输出流
     11     ofstream out;
     12     //输出到文件
     13     out.open("C:\123.txt");
     14     out << "hello file" << endl;
     15     out.close();
     16     system("C:\123.txt");
     17     cin.get();
     18 }
     19 
     20 //文件读取
     21 void main2()
     22 {
     23     //创建一个输出流
     24     ifstream in;
     25     in.open("C:\123.txt");
     26     char str[256]{ 0 };
     27     //in >> str;
     28     //从文件读取
     29     in.getline(str, 256);
     30     in.close();
     31     cout << str << endl;
     32     cin.get();
     33     system("C:\123.txt");
     34 }
     35 
     36 //文件打开方式,追加
     37 void main3()
     38 {
     39     //写入到文件 in读o写
     40     //创建一个输出流
     41     ofstream out;
     42     //输出到文件(追加模式)
     43     out.open("C:\123.txt",ios::app);
     44     out << " hello world" << endl;
     45     out.close();
     46     system("C:\123.txt");
     47     cin.get();
     48 }
     49 
     50 
     51 //二进制文件读写
     52 struct info
     53 {
     54     char name[10];
     55     int id;
     56     double price;
     57 };
     58 
     59 //把结构体的信息按二进制方式写入文件
     60 void main4()
     61 {
     62     struct info infs[3] = { {"xiaowang1",1,100},{ "xiaowang2",2,200 },{ "xiaowang3",3,300 } };
     63     //二进制方式读
     64     ofstream fout("bin.bin", ios::binary);
     65     //内存写入到磁盘 (必须要转换成char *)
     66     fout.write((char *)infs, sizeof(infs));
     67     fout.close();
     68 
     69     struct info infs2[3];
     70     //二进制方式写(必须要转换成char *)
     71     ifstream fin("bin.bin",ios::binary);
     72     fin.read((char*)infs2, sizeof(infs2));
     73     fin.close();
     74     for (auto i : infs2)
     75     {
     76         cout << i.id << i.name << i.price << endl;
     77     }
     78     system("pause");
     79 }
     80 
     81 //把结构体的信息按文本方式写入到文件
     82 void main5()
     83 {
     84     struct info infs[3] = { { "xiaowang1",1,100 },{ "xiaowang2",2,200 },{ "xiaowang3",3,300 } };
     85 
     86     //文本文件读写
     87     ofstream fout("1.txt", ios::out|ios::app);
     88 
     89     for (auto i : infs)
     90     {
     91         fout << i.name << i.price << i.id << endl;
     92     }
     93 
     94     fout.close();
     95 
     96     ifstream fin("1.txt");
     97     for (int i = 0; i < 3; i++)
     98     {
     99         char str[255]{ 0 };
    100         fin.getline(str, 254);
    101         cout << str << endl;
    102     }
    103     fin.close();
    104     system("pause");
    105 }
    106 
    107 //文件指针移动到指定位置读seekg
    108 void main6()
    109 {
    110     ofstream fout("hello.txt");
    111     if (!fout)
    112     {
    113         cout << "操作失败";
    114     }
    115 
    116     fout << "123456789abcdefghijklmnopqrstuvwxyz";
    117     fout.close();
    118 
    119     ifstream fin("hello.txt");
    120     if (fin.fail())
    121     {
    122         cout << "操作失败";
    123     }
    124     //从开始往后移动9个位置开始读
    125     fin.seekg(9, ios::beg);
    126     char ch;
    127     while (fin.get(ch))
    128     {
    129         cout << ch;
    130     }
    131     fin.close();
    132     system("pause");
    133 }
    134 
    135 //追加方式文件指针移动到指定位置写(失效)
    136 void main7()
    137 {
    138     char ch;
    139     ifstream fin("hello.txt");
    140     while (fin.get(ch))
    141     {
    142         cout << ch;
    143     }
    144     fin.close();
    145 
    146     //以追加的方式的打开
    147     ofstream fout("hello.txt",ios::app);
    148     //从头开始往后移动五个位置(到第五个位置之后)
    149     //如果是追加移动无效
    150     fout.seekp(5, ios::beg);
    151     fout << "ceshiceshi";
    152     fout.close();
    153     system("hello.txt");
    154     system("pause");
    155 }
    156 
    157 //读写方式文件指针移动到指定位置写(seekp)
    158 void main()
    159 {
    160     char ch;
    161     ifstream fin("hello.txt");
    162     while (fin.get(ch))
    163     {
    164         cout << ch;
    165     }
    166     fin.close();
    167 
    168     //以读写的方式的打开(会造成重写)
    169     ofstream fout("hello.txt", ios::in | ios::out);
    170     //从头开始往后移动五个位置(到第五个位置之后)
    171     //如果是追加移动无效
    172     fout.seekp(5, ios::beg);
    173     fout << "ceshiceshi";
    174     fout.close();
    175     system("hello.txt");
    176     system("pause");
    177 }
  • 相关阅读:
    (转载)Android content provider基础与使用
    如何解决Android的SDK与ADT不匹配问题
    Android 中断线程的处理
    用AsyncTask 来实现下载图片在android开发中
    开源自己的一个小android项目(美女撕衣服游戏)
    实现在Android开发中的Splash Screen开场屏的效果
    支持在安卓中UI(View)的刷新功能
    android从资源文件中读取文件流显示
    后缀数组 模板题 hdu1403(最长公共(连续)子串)
    Codeforces Round #383 (Div. 1) C(二分图)
  • 原文地址:https://www.cnblogs.com/xiaochi/p/8620733.html
Copyright © 2011-2022 走看看