C语言读取文件

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 } 
时间: 2024-10-19 17:55:27

C语言读取文件的相关文章

关于C语言读取文件时候多读一行

梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是[!feof(fp)]的错!!! while (!feof(fp)) {  fgets(buffer,256,fp);  j++; } 像这样的代码,是很多C语言学者经常犯的错误!! feof()这个函数是用来判断指针是否已经到达文件尾部的.若fp已经指向文件末尾,则feof(fp)函数值为"真",即返回非零值:否则返回0. 对呀!那有什么问题的呢? 其实feof() 这个函数是当读到文件结束符就返回 true 值,而非到

R语言读取文件数据

R语言读取文件数据 ??1.read.table()函数 2.其他函数的缺省 read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".",fill = TRUE, ...)read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",",fill =

类似于c语言读取文件进行解析

$log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/'.date('Ym').'/'.date('d').'_error.log';            //$log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/201701/19_error.log';                   if(!file_exists($l

C语言读取文件大量数据到数组

针对.txt文档的大量有规律数据,譬如100行8列的数据将其读取到二维数组(矩阵)中,留作之后的数据处理. 改程序通过宏定义的方法来确定将要读取程序的行数和列数,将数据读取到二维数组data[100][8]中. 同时加入一个测试函数read(),功能是可以获取txt文档大量数据的行数,本项目中待定使用. 程序如下: #include<stdio.h> #include<stdlib.h> /* 为了以后特定行数的读取,采用宏定义的方法来确定行数 程序中read()读取该文件的行数,

C语言:字符串读取流读取文件中的数据

#include<stdio.h> int main() { //定义文件指针 FILE *f = NULL; //打开文件 f = fopen("1.txt","r"); if(f==NULL) { printf("文件读取失败!\n"); return -1; } //读文件 const int SIZE = 100; char buf[SIZE];//用字符数组做读文件的缓冲区 while(!feof(f)) { //字符串方式

C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析

C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式  只可以读   只可以写  读写兼备 文本模式 r w a r+ w+ a+ 二进制模式 rb wb ab  rb+ (r+b)   wb+ (w+b)   ab+ (a+b)  其中,二进制模式与文本模式操作相似,只不过是以二进制流的形式读写而已,下面以文本模式为例分析: 1."r" 模式: 1.1 打开文件进行“只读”操作,即只能从文件读取内容. 1.2 若欲操作的文件不存在,则打开

C语言之文件操作08——总结

C程序的文件操作共涵盖7个例题,包含格式打印,文件读取,条件查找,矩阵的文件操作,数据格式输入及调用计算等内容. 文件操作使得程序有更强的拓展性,使其可以单独保存数据,这为程序的调试和优化打下了坚实的基础,为我们实现大规模计算提供了可能.至此,相信大家对文件操作也有了比较好的认识,无非是写入.读取.调用. 我们常常会听说C的强大,也是因为她有着文件操作的功能,而文件数据是可以方便重写和维护的. MATLAB数学软件是一款十分强大的工具型软件,它是通过C语言来表达算法的,作为面向过程的编程语言C,

(转) C语言头文件、库文件的查找路径

在程序设计中,文件包含是很有用的.一个大的程序可以分为多个模块,由多个程序员分别编程.有        些公    用的符号常量或宏定义等可单独组成一个文件,在其它文件的开头用包含命令包含该文件即可使        用.这样,可避免在每个文件开头都去书写那些公用量,从而节省时间,并减少出错. 对文件包含命令还要说明以下几点:1. 包含命令中的文件名可以用双引号括起来,也可以用尖括号括起来.例如以下写法都是允许的:    #include"stdio.h"    #include   

c语言中文件相关操作

一 .首先介绍一下数据文件的类型: 1.二进制文件(映像文件):在内存中以二进制形式存取. 2.文本文件(ascii文件):以ascii码形式存取的文件. 通俗的讲,在Mac下,你把一个文件丢进记事本里面,如果打开是乱码就是二进制文件. 二.其次是文件类型指针: 简单的说文件类型指针就是存储文件信息的地址. 文件类型指针变量:定义一个指针类型的变量,用来指向存储文件信息的地址.用FILE定义.比如: FILE * fp 三.文件操作步骤(c语言中所有用到的函数都是f开头的.): 1.打开文件 f