精华内容
下载资源
问答
  • 以读文本方式打开文件
    千次阅读
    2021-05-25 01:12:13

    fopen( "data", "r" );这样就行了。下面是一个完整代码的例子。

    (取自微软MSDN)

    #include FILE *stream, *stream2;void main( void ){ ? int numclosed; ? /* Open for read (will fail if file "data" does not exist) */ ? if( (stream ?= fopen( "data", "r" )) == NULL ) ? ? ?printf( "The file 'data' was not opened

    " ); ? else ? ? ?printf( "The file 'data' was opened

    " ); ? /* Open for write */ ? if( (stream2 = fopen( "data2", "w " )) == NULL ) ? ? ?printf( "The file 'data2' was not opened

    " ); ? else ? ? ?printf( "The file 'data2' was opened

    " ); ? /* Close stream */ ? if( fclose( stream ) ) ? ? ?printf( "The file 'data' was not closed

    " ); ? /* All other files are closed: */ ? numclosed = _fcloseall( ); ? printf( "Number of files closed by _fcloseall: %u

    ", numclosed );}

    Output

    The file 'data' was openedThe file 'data2' was openedNumber of files closed by _fcloseall: 1。

    全部

    更多相关内容
  • 对于编程人员来说,文本文件和二进制文件就是一个声明,指明了你应该什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断到这个文件结尾等。 具体分析如下: 一、哪种方式...
  • 我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断到这个文件结尾。具体的说:1。哪种方式...

    转自:http://blog.sina.com.cn/s/blog_50b7dd7101012979.html,

    我们都知道,文本文件和二进制文件在计算机上面都是以0,1存储的,那么两者怎么还存在差别呢?我觉得,对于编程人员,文本文件和二进制文件就是一个声明,指明了你应该以什么方式(文本方式/二进制)打开这个文件,用什么函数读写这个文件(读写函数),怎么判断读到这个文件结尾。

    具体的说:

    1。以哪种方式打开一个文件?

    ANSI C规定了标准输入输出函数库,用fopen()函数打开文件。fopen()函数的调用方式一般为:

    FILE *fp;

    fp=fopen(文件名,使用文件方式);

    使用文件方式见下表:

    使用文件方式

    含义

    "r"(只读)

    为输入打开一个文本文件

    "w"(只写)

    为输出打开一个文本文件

    "a"(追加)

    为追加打开一个文本文件

    "rb"(只读)

    为输入打开一个二进制文件

    "wb"(只写)

    为输出打开一个二进制文件

    "ab"(追加)

    为追加打开一个二进制文件

    "r+"(读写)

    为读/写打开一个文本文件

    "w+"(读写)

    为读/写创建一个文本文件

    "a+"(读写)

    为读/写打开一个文本文件

    "rb+"(读写)

    为读/写打开一个二进制文件

    "wb+"(读写)

    为读/写创建一个二进制文件

    "ab+"(读写)

    为读/写打开一个二进制文件

    同一个文件从磁盘读取文件到内存(程序数据区或者缓存区)时,两种方式下,内存中的内容一般不相同,这就是两种打开方式的实质性差别。

    这里要说一个背景,那就是在windows下,它会做一个处理,就是写文件时,换行符会被转换成回车,换行符存在磁盘文件上,而读磁盘上的文件时,它又会进行逆处理,就是把文件中连续的回车,换行符转换成换行符。

    因此,在读取一个磁盘文件时,文本方式读取到文件内容很有可能会比二进制文件短,因为文本方式读取要把回车,换行两个字符变成一个字符,相当于截短了文件。但是为什么仅仅是可能呢?因为可能文中中不存在连着的45,42这两个字节(45是CR回车的ASCII码,42是换行符CL的ASCII码),也就不存在“截短”操作了,因此读到的内容是一样的。

    具体的来说,文件文件(以文本方式写的),最好以文本方式读。二进制文件(以二进制方式写的),最好以二进制方式读。不然可能会不正确。上面的已经分析了。

    2.以什么函数读写文件?

    数据怎么在磁盘上写不是由文件打开方式决定的,而是由写函数决定的。数据怎么从磁盘上读也不是由文件打开方式决定的,而是由读函数决定的。

    上面说的数据怎么写是说指,一种类型的变量是怎么存的?比如int 12,可以直接存12的二进制码(4个字节),也可以存字符1,字符2.

    数据怎么读的是指,我要读一个int变量,是直接读sizeof(int)个字节,还是一个字符一个字符的读,直到读到的字符不是数字字符。

    C里面有两组文件读写函数恰好支持上面两种方式的读写:

    1.fread(buffer,size,count,fp),fwrite(buffer,size,count,fp)。用来读写一个数据块。它对应的是第一种存储方式。直接按类型的字节长度指定读写的字节数。

    2fprintf函数和fscanf函数.它对应的是第二种读写方式。即以字符的方式读写。(fprintf函数、fscanf函数与printf函数、scanf函数的作用相仿,都是格式化读写函数。fprintf和fscanf函数的读写对象是磁盘文件,而printf和scanf函数的读写对象是终端。)

    它们的一般调用格式为:

    fprintf(文件指针,格式字符串,输出列表);

    fscanf (文件指针,格式字符串,输入列表);

    3怎么判断文件尾?

    在C语言,或更精确地说成C标准函式库中,有一个特别的字符EOF(stdio.h中这个定义 #define EOF (-1) ),它表示:文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。

    但是,C语言中,当把数据以二进制形式存放到文件中时,就会有-1值的出现,此时不能采用EOF作为二进制文件的结束标志。为解决这个问题,ANSI C提供一个feof函数,用来判断文件是否结束。如果遇到文件结束,函数feof(fp)的值为1,否则为0.

    feof函数既可用以判断二进制文件是否结束,也可以用以判断文本文件是否结束。但是要注意feof用以判断文本文件尾时,如果代码编写不当,可能会把文本文中中的文件结束符EOF也读取出来了;具体见http://baike.baidu.com/view/656648.htm

    4.知道一个文件是文本文件,还是二进制文件,更多的“提醒”我们,应该选择哪种读写函数。

    正如2所说的,数据怎么存不是由文件打开方式决定的,而是由读写函数决定的。

    比如说,我们以二进制文件的方式打开一个文件(实际上只是指明了要进行换行符的转换),它更多的是代表一种理念(虚的):我“希望”这个文件里面的数据是这样的,int类型占4字节,char占1个字节。这种模式下,我用fread(buffer,size0f(int),1,fp)读取一个int到int变量中。

    我们记住

    我们在对一个文件进行操作以前,首先,我们要清楚这个文件到底是文本文件还是二进制文件。文件文件用文本方式打开,二进制文件用二进制方式打开

    如果我们要操作一个二进制文件,那么我们就以二进制方式打开(理论上也可以以文件方式打开,但是如果写的二进制数据里面有45时,会转化成45,42存储,见1.这是很有可能发生的)。同时读写的时候用fread,fwrite这两个函数。

    如果我要操作一个文本文件,那么我们就以文本的方式打开(理论上也可以以二进制方式打开,但是不保险)。同时读写的时候用读写字符的那些函数fprintf,fscanf ,fgetc,fputc,putw,getw,fgetc,fputs

    展开全文
  • #include<iostream> using namespace std; #include<fstream> #include<string>...//文件有四种方式,用四个测试案例来展示 ... //ifs里有一个成员函数is_open函数,它返回的是... //如果打开文件成功
    #include<iostream>
    using namespace std;
    #include<fstream>
    #include<string>
    //读文件有四种方式,用四个测试案例来展示
    void test01()
    {//方法1
    	ifstream ifs;
    	ifs.open("test.txt", ios::in);
    	if (!ifs.is_open())
    		//ifs里有一个成员函数is_open函数,它返回的是一个布尔类型的数据
    		//如果打开文件成功就返回的true,如果打开文件失败返回的就是false
    	{//打开文件失败可能是由于文件不存在,或者打开时候的文件名输入错误
    		//也有可能是打开的方式不对
    		cout << "打开文件失败" << endl;
    		return;//打开文件失败就可以结束使用了,用一个return返回
    	}
    	char buf[1024] = { 0 };//注意这个缓冲区的类型必须要为char类型的
    	//因为本身文件就是文本文件,
    	while (ifs >> buf)
    		//用该种方式如果读到文件末尾,就返回一个假的标志
    		//当读到假的标志时,while就可以退出循环了
    	{
    		cout << buf << endl;
    	}
    	ifs.close();
    }
    void test02()
    {
    	//方法2
    	ifstream ifs;
    	ifs.open("test.txt", ios::in);
    	if (!ifs.is_open())
    	{
    		cout << "文件打开失败" << endl;
    		return;
    	}
    	char buf[1024] = { 0 };
    	// ifs中有一个成员函数叫做getline(可以一行一行的读数据):
    	//第一个参数是一个缓冲区的string*,就是字符串的首地址
    	//也就是数组中第一个元素的地址
        //字符串,第二个参数是文本文件中的每一行的长度
    	while (ifs.getline(buf,sizeof(buf)))
    	{
    		cout << buf << endl;
    	}
    	ifs.close();
    }
    void test03()
    {//方法3:
    	//.根据文件流和字符串的形式(不是将所有的数据放在数组中,而是将
    	//所有的数据放到string的字符串里面)
    	//第二种方式是是利用的到的getline的成员函数
    	//第三种方法也是用到getline,但是用到的是全局的
    	ifstream ifs;
    	ifs.open("test.txt", ios::in);
    	if (!ifs.is_open())
    	{
    		cout << "文件打开失败" << endl;
    		return;
    	}
    	string buf;
    	//这个全局函数getline是将一行一行的数据读到buf中去的
    	//全局的getline函数的第一个参数是基本的输入流对象 就是ifs
    	//第二个参数是缓冲区的地址,就是string字符串的地址
    	while (getline(ifs, buf)) //getline未定义的标识符:必须加上string的头文件
    	{
    		cout << buf << endl;
    	}
    }
    void test04()
    {
    	//方法4:一个字符一个字符的读
        //一个一个字符的读不推荐:因为速度的话肯定没有一行一行的读的速度快
    
    	ifstream ifs;
    	ifs.open("test.txt", ios::in);
    	if (!ifs.is_open())
    	{
    		cout << "文件打开失败" << endl;
    		return;
    	}
    	char c;
    	while ((c = ifs.get()) != EOF)
    	{
    		cout << c;//一个字符一个字符的读就不需要换行了
    	}
    	ifs.close();//打开文件后一定要记得关闭文件:
    	//如果不关闭文件:那么文件指针会一直被占用
    	//别的进程就打不开这个文件了
    }
    int main(void)
    {
    	test01();
    	test02();
    	test03();
    	test04();
    	system("pause");
    }
    
    展开全文
  • C语言打开文件教程在在 C 语言中,打开文件使用 fopenC语言fopen函数详解语法FILE *fopen(char *filename, char *mode);参数参数描述filename要打开的文件路径。mode要打开的文件的方式。返回值如果打开成功,则返回...

    C语言打开文件教程

    在 C 语言中,打开文件使用 fopen

    C语言fopen函数详解

    语法

    FILE *fopen(char *filename, char *mode);

    参数

    参数

    描述

    filename

    要打开的文件路径。

    mode

    要打开的文件的方式。

    返回值

    如果打开成功,则返回一个 FILE 指针,否则,返回

    头文件

    fopen 函数在 stdio.h 的头文件里面。

    技术细节

    fopen() 会获取文件信息,包括文件名、文件状态、当前读写位置等,并将这些信息保存到一个 FILE 类型的

    C语言fopen函数打开文件方式

    不同的操作需要不同的文件权限。如果,只想读取文件中的数据的话,“只读” 权限就够了;既想读取又想写入数据的话,“读写” 权限就是必须的了。

    另外,文件也有不同的类型,按照数据的存储方式可以分为二进制文件和文本文件,它们的操作细节是不同的。在调用 fopen() 函数时,这些信息都必须提供,称为 “文件打开方式”。

    控制读写权限的字符串

    打开方式

    说明

    “r”

    以 “只读” 方式打开文件。只允许读取,不允许写入。文件必须存在,否则打开失败。

    “w”

    以 “写入” 方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。

    “a”

    以 “追加” 方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。

    “r+”

    以 “读写” 方式打开文件。既可以读取也可以写入,也就是随意更新文件。文件必须存在,否则打开失败。

    “w+”

    以 “写入/更新” 方式打开文件,相当于 w 和 r+ 叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。

    “a+”

    以 “追加/更新” 方式打开文件,相当于 a 和 r+ 叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。

    控制读写方式的字符串

    打开方式

    说明

    “t”

    文本文件。如果不写,默认为"t"。

    “b”

    二进制文件。

    说明

    调用 fopen() 函数时必须指明读写权限,但是可以不指明读写方式(此时默认为 "t")。读写权限和读写方式可以组合使用,但是必须将读写方式放在读写权限的中间或者尾部(换句话说,不能将读写方式放在读写权限的开头)。例如:

    将读写方式放在读写权限的末尾:“rb”、“wt”、“ab”、“r+b”、“w+t”、“a+t”。

    将读写方式放在读写权限的中间:“rb+”、“wt+”、“ab+”。

    整体来说,文件打开方式由 r、w、a、t、b、+ 六个字符拼成,各字符的含义是:

    字符

    描述

    r

    read,读

    w

    write,写

    a

    append,追加

    t

    text,文本文件

    b

    banary,二进制文件

    +

    读和写

    案例

    打开文件

    使用 fopen 函数打开文件

    #include

    #include

    int main(){

    printf("嗨客网(www.haicoder.net)\n\n");

    FILE *fp = NULL;

    if ( (fp = fopen("c:\\1.txt", "rt")) == NULL )

    {

    puts("Open file failed\n");

    return;

    }

    else

    {

    puts("Open file success\n");

    return;

    }

    return 0;

    }

    程序运行后,控制台输出如下:

    0ddce47f81fb782f093e5304227bf796.png

    我们使用了 fopen 函数,打开了一个 c 盘的文件,以只读的方式读取该文件,并将读取到的内容赋值给 FILE 类型的 fp

    接着,我们使用

    这里,因为,我们文件不存在,所以打开文件失败,现在,我们在 C 盘创建该文件,再次使用上面的程序打开该文件,此时程序运行后,控制台输出如下:

    58dc90a9ba22ce2b8ac0896a261b8838.png

    此时,因为文件存在,所以,我们的文件打开成功了。

    C语言打开文件教程总结

    在 C 语言中,打开文件使用 fopen 函数,打开文件时,我们需要知道文件的路径和打开文件的方式。

    展开全文
  • 易语言多线程读取大文本文件源码,多线程读取大文本文件,线程读取,WideCharToMultiByte
  • 文件打开方式当我们用open()函数去打开文件的时候,有好几种打开的模式。"r"->只读"w"->只写,文件已存在则清空,不存在则创建。"a"->追加,写到文件末尾"b"->二进制模式,...
  • 简述用“r”方式打开文件的特点

    千次阅读 2021-05-23 06:28:58
    简述用“r”方式打开文件的特点r+可可写打开文件, 文件必须存在 a+同上, 不过如果文件存在, 就在文件后头写入, 如果不存在, 则创建文件 w+同上, 不过文件存在则将文件清空, 不存在就创建文件.c语言文件读写方式:两...
  • Python文件操作:文件的打开关闭读取写入一、文件的打开关闭Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作。文件操作都分为以下几个步骤:1.打开文件。2.操作文件:/写。3.关闭...
  • 【C 语言】文件操作 ( fopen 文件打开方式详解 )

    千次阅读 多人点赞 2021-05-26 22:23:44
    r : 只读方式打开文件 , 文件必须存在 ; 文件不存在打开失败 ; + : 读写方式打开文件 ; w : 打开只写文件 , 文件不存在创建文件 , 文件存在覆盖文件 ; a : 打开只写文件 , 文件不存在创建文件 , 文件存在追加文件...
  • 一、打开文件 文件的操作步骤: • 打开文件 • 对文件进行各种操作(、写)然后保存 • 关闭文件 文件会有一个返回值。...open()打开文件时,默认是以文本文件的形式打开的。 1、open()函数 open(file, mode=‘r’,
  • 数据文件要打开的文本文件名称为 “数据文本文件 ”,和 python文件 - readtxt.py放置在同一个目录下,文件中的内容如下:比较方便的方式是直接打开文件,保存为一个对象,然后逐行读取。其中,open()是打开要读取的...
  • C语言中打开文件读取,写入的操作

    千次阅读 2021-05-22 04:03:29
    #include#includeint main(){//打开文件读取的方式FILE* file = fopen("E://1.txt","rt");char arr[20]={};//第一个参数:要读入的数组 第二个是每次读入的个数 第三个参数是了多少次 第四个是从哪里int len...
  • 易语言字节集文件的十六进制和文本的读取操作源码,字节集文件的十六进制和文本的读取操作,文件字节集翻页,取字节集翻页总页数,字节集到十六进制文本,显示标号列文本,转到,全文本替换
  • C语言文件操作

    千次阅读 2021-05-25 02:50:50
    语言中对文件进行操作必须首先打开文件打开文件主要涉及到fopen函数。fopen函数的原型为FILE* fopen(const char *path,const char *mode)其中path为文件路径,mode为打开方式1)对于文件路径,只需注意若未明确给出...
  • C语言-文件操作-文件打开方式

    千次阅读 2021-06-24 16:31:34
    r :read,只读的方式打开文件,文件必须存在! w :write,写,只写的方式打开文件,文件如果存在则打开并 清空文件内容,反之新建一个同名文件 a :append,追加,追加的方式打开文件,文件如果存在则打开...
  • Python基础 文本控制 文件编码格式 使用python读写文件 常用的文件打开方式,文件对象的常用方法,文件读写的原理,读取磁盘文件中的内容
  • 高教版python语言程序设计冲刺试卷 9.6 文件和数据格式化高教版python语言程序设计冲刺试卷 9.6 文件和数据格式化(1)当文件以文本方式打开时,读写按照字符串方式,当文件以二进制方式打开时,读写按照字节流方式。...
  • Python打开文件方式

    千次阅读 2020-11-26 04:43:03
    r 只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。a 打开一个文件用于追加。如果该文件已存在,文件...
  • 编写一个统计本月服装的销售情况的函数。 相关知识 文件流操作文件 C 还可以使用文件流的方式操作文件,使用文件流的...打开文件用于时可以使用类 fstream 或者 ifstream 函数。 ifstream 函数 ifstream inFile(te
  • python文件打开方式

    2020-11-20 18:51:52
    可以读写,写覆盖r+ 可以读写,写覆盖a+ 可以读写,写追加是否可r 仅可r+ 可以读写w+ 可以读写a+ 可以读写不可打开方式: w a如果不存在会创建新文件的打开方式:a a+ w w+前面讲的默认都是读取文本文件,...
  • 浏览文件并打开 ##工程创建 创建一个c#的windows项目... 打开文件的 点击事件函数中添加代码 private void OpenFile_Click(object sender, EventArgs e) // 输入文本清空 { OpenFileDialog dialog = new OpenFi...
  • python文件读写

    千次阅读 2021-02-03 13:30:00
    打开文件file_object = open(file_...access_mode 打开文件方式,如果不写默认为‘r’buffering = 1表示有1行缓冲,默认则表示使用系统默认提供的缓冲机制。返回值:成功返回文件操作对象。操作完成需要使用file_...
  • 看到很多人在修改文本文件的时候是先打开一个文本文件并读取,然后关闭该文本文件。接着再打开一个文本文件用于写入。但有时候只是想修改文件里面的一些字符,用上面的方法难免感觉有些麻烦。下面介绍如何一次性读取...
  • Python读写文件

    千次阅读 2020-11-24 08:47:05
    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object = open('thefile.txt')try:all_the_text = file_object.read( )finally...
  • python:文件操作

    千次阅读 2020-12-24 08:23:42
    则创建改文件只写方式打开"x"创建一个新文件,并写模式打开这个文件,如果文件存在,则会产生“FileExistsError”错误"a"只写模式打开一个文件,如果要打开文件存在,则要写入的内容追加到文件末尾"b"用二...
  • Android读取文本文件的demo

    千次下载 热门讨论 2012-03-17 22:56:43
    一个Android读取文本文件的demo,txt文件放到res/raw文件夹下,通过代码将其读取并显示在屏幕上。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 220,410
精华内容 88,164
热门标签
关键字:

以读文本方式打开文件