码迷,mamicode.com
首页 > 编程语言 > 详细

C语言读取文件

时间:2016-04-06 16:56:49      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

1、首先我们要在D盘下新建一个文本文件(文件名为:AAA.txt),并在文件里面写入任意字符,如果没有此文件会因为找不到文件而造成文件打开失败。

技术分享

2、运行程序,将文件内的字符逐个读取输出到屏幕上

技术分享

3、若打开文件失败,则如下图所示,此时应检查文件路径是否正确

技术分享

 

fopen函数说明:

作用:用来打开一个文件

格式:FILE * fopen(const char * path,const char * mode);

返回值:打开文件成功返回一个文件指针,若打开文件失败则返回NULL

参数说明:

path:字符串包含欲打开的文件路径及文件名(例如:D:\\AAA.txt),注意在C语言中欲输出一个"\"则需要输两个"\\" 

mode:代表着流形态,mode有下列几种形态字符串:  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

fgetc函数说明:

作用:从文件指针指向的文件流中读取一个字符,读取一个字节后,光标位置后移一个字节

格式:int fgetc(FILE *stream);

返回值:返回所读取的一个字节,如果读到文件末尾或者读取出错时返回EOF(EOF是文件结束标识符)

参数说明:

stream:文件指针,从这个文件读取一个字符,然后将光标后移一个字节

 

C语言源代码:

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 int main()  
 5 { 
 6     FILE *fp; // 文件指针 
 7     char ch; 
 8     char filename[] = "D:\\AAA.txt"; // 文件路径
 9     
10     fp=fopen(filename, "r"); // 以读取的方式打开文件 
11     if(fp==NULL) // 判断文件是否打开成功 
12     {    //打开文件失败了 
13         printf("cannot open the file!");  
14         exit(0);  // 退出程序 需要头文件"stdlib.h"
15     }
16     
17     ch=fgetc(fp); // 读取第一个字符 
18     while(ch!=EOF) // EOF即文件结尾 
19     {
20         putchar(ch); // 输出一个字符到屏幕上
21         ch=fgetc(fp);  // 读取下一个字符 
22     }
23     
24     fclose(fp);  //关闭数据文件 
25     getch(); // 暂停程序
26     return 0;
27 } 

 

C语言读取文件

标签:

原文地址:http://www.cnblogs.com/wuqianling/p/5340719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!