文章目录 文件打开与关闭 文件读写操作 读/写文件中的字符串 格式化读写文件操作 文件定位函数 作业使用案例(自己可以全部完成一遍): 文件打开与关闭 C文件操作用库函数实现,包含在stdio.h中。...文件使用方式: 打开文件→文件读/写→关闭文件 系统自动打开和关闭三个标准文件: 标准输入——键盘 stdin 标准输出——显示器 stdout 标准出错输出—–显示器 stderr...文件读写操作 当我们把文件打开之后,就可以对它进行读与写的操作。...读/写文件中的一个字符 文件I/O与终端I/O的关系 案例: 例如:从键盘输入字符,逐个写入文件,直到输入一个“#”为止。...C语言规定的起始位置有三种,分别为文件开头、当前位置和文件末尾,每个位置都用对应的常量来表示: 例如:把位置指针移动到离文件开头100个字节处: fseek(fp, 100, 0);
一、文件缓冲区 在C程序运行时,数据并不是直接保存到文件中的,也不是直接从文件打印到屏幕上,中间有个缓冲区,示意图如下: 这里的硬盘是指的文件。 fflush/fclose都有刷新缓冲区的作用。...二、文件读取结束原因 在C语言文件中,主要使用feof、ferror两个函数来判断文件读取结束的原因。...#include int main() { FILE* p = fopen("test.txt", "r");//a b c d e if (p == NULL)...fopen"); return 1; } //使p发生偏移 fseek(p, 2, SEEK_CUR);//2 char ch = fgetc(p);//c...printf("%d \n", ftell(p));//3 //使p偏移量恢复为初始值 rewind(p); ch = fgetc(p); printf("%c\
前言 之前在windows上使用vc++6.0,编写过c的代码,主要是为了完成一些作业,并没有十分深入的学习C语言. 因此当时留下了两个对于c语的言的误区,现在记录一下。...一开始我以为是使用的编译器的标准不同,因此尝试着使用c89,c90,c99,c11编译程序,使用c89和c90时, 编译器还是没有报任何错误,而使用c99和c11时,会报下面的警告: test.c:...随后我又看了一下gcc的版本,发现是4.8.4, 然后查看了一下它的手册, 发现其默认使用的c编译标准是c90 The default, if no C language dialect options...8:7: warning: conflicting types for ‘aa’ [enabled by default] void aa() { ^ test.c:4:2: note...: previous implicit declaration of ‘aa’ was here aa(); ^ 如果将aa的void改为double,就会直接报错了: test.c:8:9:
(1).编译单个源文件,创建源文件hello.c,源文件内容如下:#include int main(){/**注释**/printf("Hello Jiufeng");return ...0;}编译源文件:gcc hello.c编译后生成可执行文件a.out(2).编译多个源文件,已有以下几个源文件:(2.1).a.c#include #include "func.c"int... main(){int num = add(1,1);printf("the result is %d \r\n",num);return 0;}(2.2).func.c/**加法**/int add(...int num1,int num2);(2.3).b.c/**加法实现**/int add(int num1,int num2){return num1+num2;}编译命令:gcc a.c b.c func.c... -o main.out多个源文件编译为main.out
什么是文件 文件一般分为两中:程序文件、数据文件 而我们讨论的重点则是数据文件 2.1 程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows...文件名包含3部分:文件路径+文件名主干+文件后缀 例如: c:\code\test.txt 为了方便起见,文件标识常被称为文件名。...while ((c = fgetc(fp)) !...= EOF) // 标准C I/O读取文件循环 { printf("%c ", c); } //判断是什么原因结束的 if (ferror(fp)) puts("I/O error when...return 0; } 因此因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。
---- 相关视频——C语言精华——C语言文件操作,文件打开、关闭、读取、定位如何操作?...#define _CRT_SECURE_NO_WARNINGS 1 #include int main(void) { FILE* fp = fopen("C:\\Users\\XX...= EOF) { printf("%c",ch); } fclose(fp); return 0; } 关闭文件 fclose(); 读取文件 fgetc char ch = fgetc...fgets 读取一行fgets() char str[200]; fgets(str,200,fp); printf("%c",str); 也可以通过循环将内容一行一行的读取出来。...struct Person { char name[20]; char sex[4]; int age; }_Person; int main(void) { FILE* fp = fopen("C:
什么是文件 在程序设计中,我们谈到的文件一般有两种(从文件功能的角度来分类):程序文件、数据文件 2.1 程序文件 程序文件包括源程序文件(后缀为.c)、目标文件(Windows环境下后缀为.obj,linux...文件名包含三部分:文件路径+文件名主干+文件后缀 例如:C:\code\example.txt 为了方便起见,文件标识通常被称为文件名。...C程序针对文件、画面、键盘等的数据输⼊输出操作都是同流操作的。 一般情况下,我们要想向流里写数据,或者从流中读取数据,都是要打开流,然后操作。...4.1.2 标准流 在C语言程序启动时,会默认打开三个流: ·stdin——标准输入流,在大多数的环境中从键盘输入 ·stdout——标准输出流,在大多数环境中输出到显示器界面 ·stderr——...stdin、stdout、stderr三个流的类型是:FILE*,通常被称为文件指针。 C语言中,就是通过FILE*的文件指针来维护流的各种操作的。
本文介绍了C语言中关于文件操作的内容知识,内容较为生涩,没有理解可以多次观看 ---- ---- 一、为什么使用文件 我们在写代码的过程中,有的时候某一些数据我们是想把它保存下来的,而不是说只有在程序运行的时候...他以某些程序设计语言编写,运行于某种目标结构体系上。...,在我们使用完毕之后要关闭文件 ANSI C规定使用fopen和fclose函数来打开和关闭文件,下面是fopen和函数fclose的介绍 我们打开文件的方式,C语言规定有以下几种:...而我们现在介绍的这两个函数其实多了一个参数,这个参数就是指向文件的文件指针,我们可以更改这个文件流。...test.txt里面去了,正因为如此,我们通过二进制读取的方式才能将文件的信息以我们能看懂的方式输出到屏幕上 3.4 对比一组函数的功能(加深对输入输出函数的理解) 1.scanf/printf
程序文件 包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境 后缀为.exe)。 2....,屏幕,网络等等这种外部设备时,对于程序员来说要求太高了,所以抽象出一种 ‘流’ 的概念,程序员只需要把数据写到’ 流 '里面去,至于‘流’中的数据如何传到外部设备,我们不需要关注; 在C语言程序中,会默认打开...("%c\n", ch);//b ch = fgetc(pf); printf("%c\n", ch);//c ch = fgetc(pf); printf("%c\n", ch...("%c\n", ch);//a ch = fgetc(pf); printf("%c\n", ch);//b ch = fgetc(pf); printf("%c\n", ch...);//c ch = fgetc(pf); printf("%c\n", ch);//d //让文件指针的位置回到文件的起始位置 rewind(pf); //返回文件指针相对于起始位置的偏移量
程序⽂件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows 环境后缀为.exe)。 数据文件是什么?...缓冲区的大小根据C编译系统决定的。 因为有缓冲区的存在,C语⾔在操作⽂件的时候,需要做刷新缓冲区或者在⽂件操作结束的时候关闭⽂ 件。 如果不做,可能导致读写⽂件的问题。...在不同的C编译器的FILE类型包含的内容不完全相同,但是⼤同⼩异。 我们可以创建一个文件指针变量 FILE* pf;//⽂件指针变量 定义pf是⼀个指向FILE类型数据的指针变量。...fgets和fputs fgets从流中获取字符串并将其作为C字符串存储到str中,直到读取(num-1)个字符,或者到达换行符或文件结束符,以先发生的为准。...fscanf和fprintf 将这两个函数之间类型和scanf以及printf进行比较:可以发现都是多了FILE*stream,多了一个流,需要通过流来实现前两个函数的作用 fread和fwrite fread
什么时文件 文件用于保存数据,可以做到数据持久化的保存 磁盘上的文件就是文件 但是在程序设计中,文件一般分为两种,程序文件和数据文件 程序文件...包括源程序文件(.c),目标文件(.obj)可执行文件(.exe) 数据文件 文件内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件....文件名 一个文件要有唯一的文件标识,方便用户识别和引用 文件包括 路径+名字+后缀 例如 C;\a\a.txt 文件标识一般称为文件名 ...C程序针对⽂件、画⾯、键盘等的数据输⼊输出操作都是通过流操作的。 ⼀般情况下,我们要想向流⾥写数据,或者从流中读取数据,都是要打开流,然后操作。 ...标准流 C语言程序在启动的时候,默认打开 stdin stdout stderr三个流,分别是标准输入流,标准输流, 标准错误流.
在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的是日积月累的学习。 那么如何学习呢?当然是每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...C语言怎样向文件读写字符 fgetc函数 调用形式:fgetc(fp) 功能:从fp指向的文件读入一个字符。 返回值:读成功,带回所读的字符,失败则返回文件结束标志EOF(即-1)。...C语言怎样向文件读写一个字符串 fgets函数 调用形式:fgets(str,n,fp) 功能:从fp指向的文件读入一个长度为(n-1)的字符串,存放到字符数组str中。...C语言用格式化的方式读写文件 对文件进行格式化输入输出时,要用fprintf函数和fscanf函数,作用与printf函数和scanf函数相仿,都是格式化读写函数。...一般形式 fprintf(文件指针,格式字符串,输出表列); fscanf(文件指针,格式字符串,输入表列); C语言用二进制方式向文件读写一组数据 C语言允许用fread函数从文件中读一个数据块,用
char *fgets(char * 4.fputs fputs是C语言中的一个函数,用于将一个字符串写入到指定的文件流中,将一个字符串输出到指定的文件中,通常用于向文件中写入数据。...0; } 5.fscanf scanf函数是C语言标准库中的一个函数,用于从文件中读取格式化输入。...6.fprintf fprintf函数是C语言中的一个标准函数, 用于将数据按照一定的格式输出到文件中。...3.rewind 让文件指针的位置回到文件的起始位置 void rewind ( FILE * stream ); 在编程中,rewind函数是C语言标准库中的一个文件操作函数,它的作用是将文件指针重置为文件开头...pf = NULL; return 0; } 这里可以得出一个结论: 因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。
文件名包含3部分:文件路径+文件名主干+文件后缀 例如: c:\code\test.txt 为了方便起见,文件标识常被称为文件名。 3. ...int ch = fgetc(pf);//将文件中的一个字符读取到ch中,然后文件指针往后移动 printf("%c\n", ch); ch = fgetc(pf); printf("%c\n...第一个是文件变量,意思是从这个文件中读取或写入这个文件。第二个是读的数据的大小,字节。第三个是每次读取或写入多少个,按照类型来定,比如结构体类型,每次写入多少个结构体的内容,写一个就1,两个就2。...= EOF) // 标准C I/O读取文件循环 { putchar(c); } //判断是什么原因结束的?...这里要结论: 因为有缓冲区的存在,C语言在操作文件的时候,需要做刷新缓冲区或者在文件操作结束的时候关闭文件。 如果不做,可能导致读写文件的问题
C 语言把文件看作是一个字符(字节)的序列,即由一个一个字符(字节)的数据顺序组成。根据数据的组织形式,可分为 ASCⅡ 文件和二进制文件。...\n"); exit(1);//结束程序的执行 } 要说明的是:C 语言将计算机的输入输出设备都看作是文件。例如,键盘文件、屏幕文件等。...ANSI C 标准规定,在执行程序时系统先自动打开键盘、屏幕、错误三个文件。这三个文件的文件指针分别是:标准输入 stdin、标准输出 stdout 和标准出错 stderr。...3.2.3 参数说明 ch:是一个整型变量,内存要写到文件中的字符(C 语言中整型量和字符量可以通用)。 fp:这是个文件指针,指出要在其中写入字符的文件。...include void main(int argc,char *argv[]) //命令行参数 { int ch; FILE *in,*out; //定义in和out两个文件类型指针
但是我们会担心害怕转移字符的生成了,所以我们可以加上两个\ 那么现在我们打开的就是这个文件 //打开非代码文件夹里面的文件 //int main() //{ // //1.打开文件 //...0; } fputc函数返回的是对应字符的ASCII码值,两个参数,第一个参数是要写的字符 第二个参数是文件对应的流,文件指针 fgetc读取字符,参数是对应的文件的指针 读取失败就会返回EOF, 读取正常的话会返回对应字符的..., pf); //这两个输入的字符串在一行上面 printf("%d", ret);//返回值是0,说明成功了,不是负数 //3.关闭文件 fclose(pf);...0; } 这两个函数的返回值都是size_t 类型的 成功读取几个就返回 假设我们在用fread的时候,我们从文件中读取5个大小为size的数据放到ptr里面去,但是这个文件只有三个,读不到5个 那么我们这个函数就会返回我们实际读到数据的真实个数...); //最后的位置就是f后面,光标指向了f的后面,那么这个光标前进两个指向的就是e了 ch = fgetc(pf); printf("%c\n", ch); //关闭文件
fputc(int c, FILE *stream); 示例: #include #include int main() { FILE *file...\n"); return 0; } char c; while((c = fgetc(file)) !...= EOF) { printf("%c", c); } fclose(file); return 0; } 2、字符串读取:fgets() //参数1:存储读取的数据...\n"); return 0; } FILE *fp = fopen("./2.txt", "w"); char c; while( (c = fgetc...= EOF ) { fputc(c, fp); } fclose(file); fclose(fp); return 0; } 2、fgets()
传统 C++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include //设定插入点 #include //字符处理...#include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include <iomanip.h...基于数组的输入/输出 #include //定义关于时间的函数 #include //宽字符处理及输入/输出 #include //宽字符分类 标准 C+...#include //STL 通用模板类 #include //STL动态数组容器 #include #include 在C+...+中,标准库的命名空间为std,因而包含了上述头文件时,一般会使用下列语句: 1 using namespace std; C99 版本 1 2 3 4 5 6 #include <complex.h
一、为什么要使用文件 我们每次写的程序都是存储在内存中的,程序结束内存就会回收,数据就会丢失,如果想长久的保存数据,就要用到文件 二、文件的概念 1、程序文件 包括 源文件 .c 目标文件 .obj...可执行程序 .exe 2、数据文件 文件的内容是程序运行时读写的数据 3、文件名 文件路径+文件名主干+文件后缀 三、二进制文件和文本文件 数据在内存中以二进制形式存储,如果不转换直接输出到外存的文件中...流是一种抽象的概念,是一条双向流向输入输出也就是系统和文本的河流,我们输入输出数据都要打开流后操作 标准流 在C语言程序启动时,默认打开了3个流 ①stdin-标准输入流,像使用scanf函数从键盘输入就是标准输入流的一种...”追加 向文本尾部添加数据 建立一个新的文件 “ab”追加 向二进制文件尾部添加数据 创建一个新的文件 “a+” 打开一个文件,在文件尾读写 创建一个新的文件 “ab+” 打开一个二进制文件,在文件尾读写...(程序变量等),缓冲区大小由C编译系统决定 今天就分享到这里了
二进制文件和文本文件 2.1 数据⽂件 在C语言文件操作中主要学习的是对于数据文件的操作 数据文件不是用来保存程序的,而是用来保存程序运行后产生的数据 2.2 文本文件 文本文件是以人类可读的字符形式存储数据的文件...在C语言中,使用标准的文件I/O函数(比如fprintf、fscanf、fgets、fputs等)来处理文本文件是很方便的。这些函数可以直接读取和写入文本文件中的文本数据,并且适合于处理文本内容。...由于二进制文件不以人类可读的形式存储数据,它们无法直接用文本编辑器打开和阅读。 在C语言中,处理二进制文件需要使用fread和fwrite等函数,这些函数可以直接读取和写入二进制数据。...在C语言中,流是以FILE结构表示的,每个流都对应着一个FILE类型的指针。通过这个指针,程序可以访问流的属性和进行读写操作。...3.1.2 标准流 在C语言中,标准库提供了一组预定义的流,称为标准流(standard streams),它们包括标准输入流(stdin)、标准输出流(stdout)和标准错误流(stderr)。
领取专属 10元无门槛券
手把手带您无忧上云