C++中关于文本内容的实用操作集合(新)(添加一些关于文件流的介绍)

首先先给大家一个链接:http://baike.baidu.com/view/1679747.htm

主要是关于ios的使用,头文件要include<ios>,然后就可以调用下面的一些操作了。

ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: 文件以输入方式打开
ios::out: 文件以输出方式打开
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以保存文件时如果文件存在失败
ios::trunc: 如果文件存在,把文件长度设为0

今天写程序的时候涉及到了关于文本内容的操作,本来只是解决一个简单的问题,但是自己下午偷了个懒,翻了翻书,看了看那博客,收集了一些关于文本操作的内容,跟大家分享一下。

批量读写文本内容

示例代码:

#include<iostream>
#include<fstream>
#include<string>
#include<stdio.h>
using namespace std;
int main()
{
        int i, natom;
        char filename;
        //写文件
        for (i=0; i<3; i++){
                sprintf(filename,"t%d.txt",i);
                cout << filename <<endl;
                ofstream myfile(filename);
                myfile << 0 <<endl;
                myfile.close();
        }
        //读文件
        for (i=0; i<3; i++){
                sprintf(filename,"t%d.txt",i);
                cout << filename <<endl;
                ifstream myfile(filename);
                myfile >> natom;
                cout << natom <<endl;
                myfile.close();
        }
        return 0;
}
重点是sprintf的使用,它是一个字符串格式化指令,在这里可以用来对文件名进行逐一读取来控制读取的进度。

C++读取一个目录下所有文件名称

示例代码:

#include   <stdio.h> 
#include   <dirent.h> 
#include   <string.h> 
 
 typedef   struct   FileList 
    { 
        char   filename[64]; 
        struct   FileList   *next; 
    }FILENODE; 
 
FILENODE*  getFiles(char *dir/**//*文目录*/)
{
   DIR   *directory_pointer; 
   struct   dirent   *entry; 
   directory_pointer=opendir(dir);
   struct FileList start;
   struct FileList *filesNode;
    start.next=NULL; 
        filesNode=&start; 
        while   ((entry=readdir(directory_pointer))!=NULL) 
        { 
            filesNode-> next=(struct   FileList   *)malloc(sizeof(struct   FileList)); 
            filesNode=filesNode-> next; 
            strcpy(filesNode-> filename,entry-> d_name); 
            filesNode-> next=NULL; 
        } 
        closedir(directory_pointer); 
        filesNode=start.next;
        return filesNode;         
}
 
int   main() 
{ 
    struct FileList *filesNode;
    char dir[100]="D:\\down";  
    filesNode=getFiles(dir);
    
     
    if (filesNode==NULL)
    {
    printf("没有成功");
    return 0;
    }
    while(filesNode) 
    { 
    printf( "%s\n ",filesNode-> filename); 
    filesNode=filesNode-> next; 
    }  
   
    system("pause");
    return 0;
}

在文本操作中vector的妙用

这个是我在CSDN上看到的,觉得总结的挺好的,大家可以看看。

http://blog.csdn.net/isbnhao/article/details/8052409

http://blog.csdn.net/isbnhao/article/details/8055359

其他的还有关于顺序文件的创建和读取,以及其他的一些操作,我会在后面陆续给大家更新,欢迎关注,哈哈。

posted @ 2013-12-17 21:50  ArrowToMe  阅读(664)  评论(0编辑  收藏  举报