C/C++——打开文件读取数据的各种方式
2017-04-02 21:00
232 查看
打开文件
在fstream类中,成员函数open()实现打开文件的操作,从而将数据流和文件进行关联,通过ofstream,ifstream,fstream对象进行对文件的读写操作函数:open()
void open ( const char * filename, ios_base::openmode mode = ios_base::in | ios_base::out ); void open(const wchar_t *_Filename, ios_base::openmode mode= ios_base::in | ios_base::out, int prot = ios_base::_Openprot); 参数: filename 操作文件名 mode 打开文件的方式 prot 打开文件的属性 //基本很少用到,在查看资料时,发现有两种方式
例子:
ofstream out; out.open("data.txt", ios::in|ios::out|ios::binary)
fstream 流方法读数据
data.txt文件如下1.读取方式: 逐词读取, 读词之间用空格区分
void readdatafromfileWBW() { ifstream fin("data.txt"); string s; while (fin >> s) { cout << s << " ";//空格是为了避免数据都连在一块儿 } cout << endl; }
程序结果:(每个数都要读取一次)
2.读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分
void readdatafromfileLBL() { ifstream fin("data.txt"); const int LINE_LENGTH = 100; char str[LINE_LENGTH]; while (fin.getline(str, LINE_LENGTH)) { cout << "Read from file: " << str << endl;//要输出4次 } }
程序结果:
3.读取方式: 逐行读取, 将行读入字符串, 行之间用回车换行区分
void readdatafromfileLBL() { ifstream fin("data.txt"); string s; while (getline(fin, s)) { cout << "Read from file: " << s << endl;//读取4次(4行) } }
程序结果:
4.读取时检测
void readfile(string filename){ ifstream fin(filename); string s; if (!fin)//检测文件输入是否正常 { cout << "文件不能打开" << endl; } else{ while (fin >> s){ cout << s << ' '; } cout << endl; } fin.close(); }
C语言打开文件读取数据
C语言中要打开一个文件,需要调用fopen函数。一、函数名:fopen
二、头文件:stdio.h
三、函数声明:
FILE * fopen(const char * path,const char * mode);
四、函数参数:
参数path字符串包含欲打开的文件路径及文件名,可以是相对路径,也可以是绝对路径。
参数mode字符串则代表着流形态。常见的mode形式有如下几种:
r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
五、返回值:
如果操作成功,会返回一个非空的FILE*指针,该指针用于后续对文件的操作,如读、写、关闭等。
如失败返回NULL。
在C语言中提供了多种文件读写的函数:
·字符读写函数 :fgetc和fputc
·字符串读写函数:fgets和fputs
·数据块读写函数:freed和fwrite
·格式化读写函数:fscanf和fprinf
读取文件
程序1:
fgetc函数的功能是从指定的文件中读一个字符,函数调用的形式为:字符变量=fgetc(文件指针);例如:ch=fgetc(fp);其意义是从打开的文件fp中读取一个字符并送入ch中。
#include <stdio.h> int main() { FILE *fp; char ch; if ((fp = fopen("data.txt", "r") )== NULL){ printf("Cannot open file\n"); } else{ ch = fgetc(fp); while (ch != EOF){ putchar(ch); ch = fgetc(fp); } } fclose(fp); return 0; }
程序2:
fgets(str,n,fp);的意义是从fp所指的文件中读出n-1个字符送入字符数组str中。
#include <stdio.h> int main() { FILE *fp; char ch[100]; if ((fp = fopen("data.txt", "r") )== NULL){ printf("Cannot open file\n"); } else{ while (fgets(ch, 100, fp)){ printf("%s",ch); } } printf("\n"); fclose(fp); return 0; }
相关文章推荐
- C/C++——打开文件存储数据的各种方式
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- 文件打开的几种方式(c/c++/Windows)
- VBA 从一个未打开的Excel文件中读取数据到,已打开的文件中.
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组 (转)
- 十六进制的胎儿心电数据读取——常规方式打开为乱码,UltraEdit打开可以看到数据
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- C++ 读写文本文件、统计文件的行数、读取文件数据到数组
- 用ifstream 打开乱码的文件时,要用二进制的读取方式
- C++读取以空格作为数据区分标记,以回车为行标记的txt文件到一个整数数组(字符串妙用)
- Microsoft Jet 数据库引擎打不开文件'(未知的)'。 它已经被别的用户以独占方式打开,或没有查看数据的权限
- 不能打开某些文件,这些文件被别的用户独占方式打开,或者没有查看数据的权限
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- tail: 无法打开“+2” 读取数据: 没有那个文件或目录
- 关于C++二进制文件读取转换,数据版本升级,增加字段等结构调整工具的思路。
- asp.net中打开Excel上传文件,读取数据的方法
- C++ 简单读写文本文件、统计文件的行数、读取文件数据到数组
- C++实现文件以默认打开方式打开