VC 如何读写TXT文件

VC 如何读写TXT文件,第1张

1.文件的打开fopen()

fopen(char *filename,char *type)

其中*filename是要打开文件的文件名指针,一般用双引号括起来的文件名表示,也可使用双反斜杠隔开的路径名。而*type参数表示了对打开文件的 *** 作方式。其可采用的 *** 作方式如下:

方式 含义

r 打开,只读

w 打开,文件指针指到头,只写

a 打开,指向文件尾,在已存在文件中追加

rb 打开一个二进制文件,只读

wb 打开一个二进制文件,只写

ab 打开一个二进制文件,进行追加

r+ 以读/写方式打开一个已存在的文件

w+ 以读/写方式建立一个新的文本文件

a+ 以读/写方式打开一个文件文件进行追加

rb+ 以读/写方式打开一个二进制文件

wb+ 以读/写方式建立一个新的二进制文件

ab+ 以读/写方式打开一个二进制文件进行追加

当用fopen(0成功的打开一个文件时,该函数将返回一个FILE指针,如果文件打开失败,将返回一个NULL指针。

2.关闭文件函数fclose()

int fclose(FILE *stream)

3.文件的读写

(1).读写文件中字符的函数(一次只读写文件中的一个字符):

int fgetc(FILE *stream)

int fgetchar(void)

int fputc(int ch,FILE *stream)

int fputchar(int ch)

int getc(FILE *stream)

int putc(int ch,FILE *stream)

(2).读写文件中字符串的函数

char *fgets(char *string,int n,FILE *stream)

char *gets(char *s)

int fprintf(FILE *stream,char *format,variable-list)

int fputs(char *string,FILE *stream)

int fscanf(FILE *stream,char *format,variable-list)

有以下几种常用方法读写TXT文件:

一、

CStdioFile

二、

FILE* f = fopen("file name", "mode")

char buff[size]

fread(buff, size, 1, f)

fclose(f)

三、

//用MFC读文件

CFile file("yourfile.txt",CFile::modeRead)

char *pBuf

int iLen=file.GetLength()

pBuf =new char[iLen 1]

file.Read(pBuf,iLen)

pBuf[iLen]=0

file.Close()

MessageBox(pBuf)

四、

//用C SDK 读文件

HANDLE hFile

hFile=CreateFile("2.txt",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL)

char ch[100]

DWORD dwReads

ReadFile(hFile,ch,100,&dwReads,NULL)

CloseHandle(hFile)

ch[dwReads]=0

MessageBox(ch)*

五、

用C读文件

FILE *pFile=fopen("1.txt","rb")

char *pBuf

fseek(pFile,0,SEEK_END)//移动文件指针到文件末尾

int len=ftell(pFile)//获取当前文件指针在文件中的偏移量,Gets the current position of a file pointer.offset

pBuf=new char[len]

rewind(pFile)//将指针移动到文件头,Repositions the file pointer to the beginning of a file

//也可以用fseek(pFile,0,SEEK_SET)

fread(pBuf,1,len,pFile)

pBuf[len]=0

fclose(pFile)

MessageBox(pBuf)

1.fopen的函数原型:FILE * fopen(const char * path,const char * mode)

  fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:

r 以只读方式打开文件,该文件必须存在。

r+ 以可读写方式打开文件,该文件必须存在。

rb+ 读写打开一个二进制文件,允许读数据。

rw+ 读写打开一个文本文件,允许读和写。

w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。

w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)

a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)

wb 只写打开或新建一个二进制文件;只允许写数据。

wb+ 读写打开或建立一个二进制文件,允许读和写。

wt+ 读写打开或着建立一个文本文件;允许读写。

at+ 读写打开一个文本文件,允许读或在文本末追加数据。

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。

    返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。

2.例程:

#include<stdio.h>

#define F_PATH "d:\\myfile\\file.txt"

char c

int main(){

    FILE*fp=NULL//需要注意

    fp=fopen(F_PATH,"r")

    if(NULL==fp) return -1//要返回错误代码

    while(fscanf(fp,"%c",&c)!=EOF) printf("%c",c) //从文本中读入并在控制台打印出来

    fclose(fp)

    fp=NULL//需要指向空,否则会指向原打开文件地址    

    return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11653282.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存