首先先给大家一个链接: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
其他的还有关于顺序文件的创建和读取,以及其他的一些操作,我会在后面陆续给大家更新,欢迎关注,哈哈。