C++学习--向txt文件写入数据、读取数据、获取行数以及删除文件

基于VS2013平台的代码如下:

#include <iostream>
#include <fstream>
using namespace std;

void main()
{
    ofstream fout;
    int a = 15;
    int b = 22;
    FILE *Pf;
    int count = 0;//保存txt文件的行数的变量
    char flag_c; //保存遍历txt文件中单个字符的变量

    //写入到txt文件中
    fout.open("ColNum.txt");//建立名为ColNum.txt的文件并与fout关联
    string fileName = "carinfo.txt";    
    fout << a << endl;
    fout << b << endl;
    fout.close();//完成后,关闭TXT文件

    //读取txt文件
    ifstream fin;
    fin.open("ColNum.txt");
    int wta;
    int wtb;
    fin >> wta;
    fin >> wtb;
    cout << "txt中第一行的数:" << wta << endl;
    cout << "txt中第二行的数:" << wtb << endl;
    fin.close();//完成后,关闭TXT文件

    fopen_s(&Pf, "ColNum.txt", "rt+");//以只读方式打开txt文件
    while (!feof(Pf))
    {
        flag_c = fgetc(Pf);
        if (flag_c == '\n')
        {
            count++;
        }           
    }
    cout << "txt文件行数:" << count << endl;
    fclose(Pf);
    system("del ColNum.txt");//删除txt文件
}
  • 头文件fstream定义了用于处理输出的ofstream类、处理输入的ifstream类。
  • open()方法接受一个C-风格字符串作为参数,可以是一个字面字符串,也可以是存储在数组中的字符串。
  • close()方法不需要使用文件名作为参数,因为fout、fin已经与特定对象关联起来。

  • fopen_()函数原型如下

errno_t fopen_s(   
   FILE** pFile,  
   const char *filename,  
   const char *mode   
); 
errno_t _wfopen_s(  
   FILE** pFile,  
   const wchar_t *filename,  
   const wchar_t *mode   
); 

pFile:指向文件指针的指针,文件指针将接收指向已打开文件的指针。
filename:文件名。
mode:允许的访问类型。
返回值:如果成功返回0,失败则返回相应的错误代码。
详见:MSDN:fopen_s、_wfopen_s

  • feof()函数原型如下:
int feof(   
   FILE *stream   
); 

stream:指向 FILE 结构的指针。
返回值:如果读取操作已尝试读取超过文件的末尾,feof 函数将返回非零值;否则该函数返回 0。 如果流指针为NULL,该函数将调用无效参数处理程序,如中所述参数验证。 如果允许执行继续,errno 将设置为 EINVAL,feof 将返回 0。

  • fgetc()函数原型如下:
int fgetc(   
   FILE *stream   
);  
wint_t fgetwc(   
   FILE *stream   
);

stream:指向 FILE 结构的指针。
返回值:fgetc 返回作为 int 读取的字符或返回 EOF 以指示错误或文件尾。
此函数用来遍历txt文件中单个字符,所以可以用来遍历换行符,每次flag_c等于‘\n‘,说明是一行。

  • 使用system(“del ColNum.txt”)删除txt文件要求该txt文件必须处于非打开状态,否则无法删除。
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值