首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言:文件操作详解

一、为什么我们需要使用文件        我们在写程序的时候,输入的数据是存储在电脑内存中的,如果程序退出内存回收,相应数据也就丢失了,等再次运行程序,就看不到上次输入的数据了,所以为了能够让我们的数据永久化保存...以往在C语言程序编写中,我们处理数据的输入和输出都是以终端为对象的,即通过终端的键盘输入数据,并将运行结果显示在显示器上。        ...4.4  文件的打开和关闭        文件在读写之前要打开文件,使用结束后应关闭文件。        ...,会返回EOF; 原本文件里有abcd,我们调用了四次fgetc将他读取出来并打印在屏幕上。...,从键盘上读取,而fscanf是所有的标准输入流都可以,参数可以传文件流也可以跟scanf一样传stdin(标准输入流),而sscanf是从一个字符串中读取。

56610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C 标准库基础 IO 操作总结

    中定义的全局变量,在 stdio.h 中声明,printf 向 stdout 写,而 scanf 从 stdin 读,用户程序也可以直接使用这三个文件指针。...三、以字节为单位的IO函数 fgetc 函数从指定的文件中读一个字节,getchar从标准输入读一个字节,调用 getchar() 相当于 fgetc(stdin) #include ...四、操作读写位置函数 当我们在操作文件时,有一个叫「文件指针」的家伙来记录当前操作的文件位置,比如刚打开文件,调用了 1 次 fgetc 后,此时文件指针指向了第 1 个字节后边,注意是以字节为单位记录的...不过 strcpy 程序员还是可以避免,而 gets 的输入用户可以提供任意长的字符串,唯一避免方法就是不使用 gets,而使用 fgets(buf, size, stdin) fgets 函数从 stream..."%d-%s-%f\n", 32, "hello", 0.12); fclose(fp);liwei:/tmp$ cat file.txt 32-hello-0.120000 而 fscanf 函数的使用基本上与

    98430

    【C语言】文件操作

    在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。...文件指针 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。...文件的打开和关闭 文件在读写之前应该先打开文件,在使用结束之后应该关闭文件;在编写程序的时候,在打开文件的同时,都会返回一个FILE*的指针变量指向该文件,也相当于建立了指针和文件的关系。...: int main() { //从标准输入流中读取数据 int ch = fgetc(stdin); printf("%c\n", ch); //标准输出流...(stdin)的格式化输入函数 printf 针对标准输出流(stdout)的格式化输出函数 fscanf 针对所有输入流(文件流,stdin)的格式化输入函数 fprintf

    11510

    fscanf读取一行字符串-【C语言】15.文件操作

    在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。...每当打开一个文件的时候,系统会根据文件的情况自动创建一个FILE结构的变量,并填充其中的信息,使用者不必关心细节。   ...一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。   ...文件的打开和关闭    文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。...文件的顺序读写 功能函数名适用于   字符输入函数   fgetc   所有输入流   字符输出函数   fputc   所有输出流   文本行输入函数   fgets   所有输入流   文本行输出函数

    2.2K30

    文件操作——C语言

    如果想要将数据持久化的保存,我们可以使用文件来存储数据。 什么是文件? 文件指的就是磁盘(硬盘)上的文件 在程序设计中,文件一般有两种,分别是:程序文件、数据文件。...标准流: 我们知道了流的存在,那在我们写代码从键盘上输入数据,向屏幕上输出数据,为什么没有打开流呢?...这是因为C语言程序在启动的时候,就默认打开了3个流: stdin -- 标准输入流,在大多数的环境中从键盘上输入,scanf 函数就是从标准输入流中读取数据。...也就是(通过文件指针变量能够间接找到与它相关联的文件) 文件在读取之前呢,我们要先打开文件,在使用结束之后应该关闭文件。...rewind 让文件指针的位置回到文件的起始位置 这里我们先将数据输出到文件中,写完后,文件访问光标就走到了文件的最后,我们让文件访问光标回到文件的起始位置,在进行读取,最后输出到屏幕上。

    10710

    C语言:文件操作

    为什么使用文件 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化的保存,我们可以使⽤⽂件,因为文件是存放在硬盘上的...在以前各章所处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。...那是因为C语⾔程序在启动的时候,默认打开了3个流: stdin -- 标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...int main() { int r = fgetc(stdin);//标准输入流(从键盘读) fputc(r, stdout);//标准输出流(写到屏幕上) return 0; } fputs...输入缓冲区元素一样,读的数据,放满了输入缓冲区,然后再从缓冲区逐个地将数据送到程序数据区(程序变量等)。

    12710

    对文件的各种操作详解

    在讲之前,我们得先将一下流(英文为stream),数据从设备读入内存和数据从内存写入磁盘的过程很像是数据在流动一样,所以就“形象” 地把这个过程称为“流” 我们平常使用scanf对程序中的变量进行赋值的时候就是用到了标准输入流...,通过printf将内容打印到屏幕上时则是用到了标准输出流,而在c语言中,程序一旦运行起来就会自动的帮你打开三个流,标准输入流(stdin),标准输出流(stdout)和标准错误流(stderr)...1.2使用fgetc和fputc 在使用fgetc之前,我们先用fputc将一个字符写进文件中,这样才能使用fgets从非空的文件中读取字符。...4.2使用fscanf和fprintf fscanf,fprintf的使用方式和scanf,printf非常相似,从变量上都可以看的出来,只是多了一个流的形式罢了,不过我可以这么跟你说,scanf,printf...在很多人眼中,输入输出仅仅限于打印在屏幕上是输出,在键盘上写东西是输入,这是浅薄的认识。在我们看来,scanf的作用是通过键盘对程序中的变量进行修改,这是输入。

    13410

    【C进阶】—— 一篇文章带你学会C语言的文件操作

    在以前我们所处理数据的输入输出都是以终端为对象的,即从键盘输入数据,运行结果显示到显示器(屏幕)上。...是不是可以将我们在键盘(外部设备)上敲出来的信息输入(读操作)到内存。 printf呢? 是不是可以将内存里的东西输出(写操作)到屏幕(外部设备)上。 那这是我们已经知道的。...4.6 fscanf 我们把一个结构体数据写入文件了,那现在我们想把它取出来打印在屏幕上呢? 这时候需要使用fscanf,fscanf是从流中读取格式化数据。...:FILE * 那么: 如果我们想使用fgetc从键盘获取一个字符,只需把stdin作为参数传给fgetc就行了。...如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区至充满缓冲区后,再从缓冲区逐个地将数据送到程序数据区(程序变量等)。缓冲区的大小根据C编译系统决定的。

    25510

    C语言进阶-文件操作超详解

    目录 为什么使用文件 什么是文件 分类(从文件功能的角度) 文件名 文件的打开和关闭 文件指针 fopen和fclose函数 打开方式表 文件的顺序读写 顺序读写函数表 什么是输入输出流 fgetc/fgetc...,并填充其中的信息(使用者不必关心细节) 一般都是通过一个FILE的指针来维护这个FILE结构的变量(使用方便) 示例:创建一个FILE*的指针变量 FILE* pf;//文件指针变量 注:通过文件指针变量能够找到与它关联的文件...则返回EOF fgetc函数可从文件流中获取字符,返回类型为 int 型,当函数输入字符成功,则返回字符相应的ASCII码值,当失输入失败,则返回EOF 注:每当函数运行一次后,流(标准输入流或者文件流...//fgetc(stdin)==getchar() while ((ch = fgetc(stdin)) !...VS上不能使用了 printf("再睡眠10秒-此时,再次打开test.txt文件,文件有内容了\n"); Sleep(10000); fclose(pf); //注:fclose在关闭文件的时候

    1K20

    【C语言篇】文件操作(上篇)

    本篇我们讨论的是数据文件 在大多数处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。...文本文件 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的⽂件就是⽂本⽂件 ⼀个数据在⽂件中是怎么存储的呢?...那是因为C语⾔程序在启动的时候,默认打开了3个流: stdin-标准输⼊流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...在使用绝对路径时用\\,这是防止转义字符 FILE *fp = fopen("C:\\User\\Desktop\\data.txt","r"); // 路径名称要正确 /* fopen fclose...() { int ch = fgetc(stdin);//从键盘(标准输入流)上读取 fputc(ch, stdout);//将字符输出(写)到屏幕(标准输出流) return 0; } 向文件中写字符

    12510

    【C语言】文件操作详解 - 从打开到关闭

    在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。...如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。以ASCII字符的形式存储的文件就是文本文件。 那么一个数据在文件中是如何存储的呢?...那是因为C语言程序在启动的时候,默认打开了3个流: • stdin: 标准输入流,在大多数的环境中从键盘输入,scanf函数就是从标准输⼊流中读取数据。...这是默认打开了这三个流,我们使用scanf、printf等函数就可以直接进行输入输出操作的。 stdin、stdout、stderr三个流的类型是:FILE*,通常称为文件指针。...int main() { int ch = fgetc(stdin);//从键盘上(标准输入流)上读取 fputc(ch,stdout); //将字符输出(写)到屏幕(标准输出流) return

    9710

    【c语言】详解文件操作(二)

    文件的顺序读写 fgetc和fputc的介绍 fgetc为字符输入函数,fputc为字符输出函数,适用所以输入流和输出流 函数原型: int fgetc ( FILE* stream ); 该函数从stream...在不支持文件定位或者以追加模式打开流的情况下,总是在文件的末尾追加字符。...这两个函数与fgetc和fputc用法相似,就不举例了。判断这两个函数读取结束的原因,同样也可以使用ferror和feof。...型的指针型,因此这些变量会直接传递给fscanf和fprintf的第一个参数。...ftell函数常常和fseek函数联用,先使用fseek根据当前文件指针位置设置偏移量,然后使用ftell函数确定fseek后的文件指针位置,具体使用如下: fseek(pf, -3, SEEK_END

    13210

    fscanf读取一行字符串-C语言文件流(字节流) IO 操作(二) —— 初识“流”以及文件的顺序读写(f

    如果是从标准输入中获取,如果键盘一直没有输入,那么fgetc会阻塞等待。...fgetc 的函数声明如下:   第一个参数:任意输入流,文件流或者标准输入流(即文件指针或者stdin)   返回值:调用成功返回读取到的字符的ASCII码,调用失败或者到达文件尾返回EOF   ...("%c ", ch); fclose(pfr); pfr = NULL;   注意:实际上每次在读取文件的时候,文件指针一开始会指向第一个字符的位置,每调用一次fgetc,文件指针就会向后移动一个单位...fgets 的函数声明如下:   第一个参数:存储读取到的字符串   第二个参数:要读取的字符个数   第三个参数:任意输入流,文件流或者标准输入流(即文件指针或者stdin)   返回值:读取成功则返回读取到的字符串地址...fscanf 函数声明如下:   第一个参数:任意输入流,文件流或者标准输入流(即文件指针或者stdin)   第二个参数:可以参考 scanf 的写法   返回值:调用成功返回格式转换成功的数据个数,

    1.5K30

    C语言文件操作

    在以前各章所处理数据的输入输出都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。...一般都是通过一个FILE的指针来维护这个FILE结构的变量,这样使用起来更加方便。...也就是说,通过文件指针变量能够找到与它关联的文件。 比如: 3.2 文件的打开和关闭 文件在读写之前应该先打开文件,在使用结束之后应该关闭文件。...文件的顺序读写 4.1 顺序读写函数介绍 功能 函数名 适用于 字符输入函数 fgetc 所有输入流 字符输出函数 fputc 所有输出流 文本行输入函数 fgets 所有输入流 文本行输出函数 fputs...(stdin); printf("%c\n", ch); ch = fgetc(stdin); printf("%c\n", ch); ch = fgetc(stdin)

    8310

    TeX中的引号

    题目 在TeX中,左引号是"“",右引号是"”"。输入一篇包含双引号的文章,你的任务时把它转换成TeX的格式。...方法很简单:使用一个标志变量即可。 但是,这种有空格的字符串,再使用scanf就不合适了,因为它遇到空格就停止了。...可以用fgetc(fin),它读取一个打开的文件fin,读取一个字符,然后返回一个int值。 如果要从标准输入读取一个字符,可以用getchar,它等价于fgetc(fin)。...这里使用q作为标志变量 //2.输入字符串 //第一种方法:fgetc(fin),它读取一个打开的文件fin,读取一个字符,返回一个int值。...//从标准输入读取一个字符,可以用getchar ,它等价于fgetc(stdin). //fgets(buf,maxn,fin)读取完整的一行

    1K10

    C语言详解(文件操作)2

    ‘z’: fgetc和fputc适用所有输入流和所有输出流,当然包括标准输入流stdin和标准输出流stdout: #include int main() { int ch...= 0; ch = fgetc(stdin);//从键盘(标准输入流)上读取 fputc(ch, stdout);//将字符输出(写)到屏幕(标准输出流) return 0; } 4.1.3 fputs..., pf); //关闭文件 fclose(pf); pf = NULL; return 0; } 运行成功后查看文档,内容已经被重写: fputs函数在写入字符串的时候是不主动换行的 #include...从文件中读的时候不要用 %.1lf //s.name是数组名不需要加取地址操作符 printf("%s\n%d\n%.1lf\n", s.name, s.age, s.weight); //打印在屏幕上...如果从磁盘向计算机读入数据,则从磁盘文件中读取数据输入到内存缓冲区,充满缓冲区后再逐个地将数据送到程序数据区(程序变量等),缓冲区的大小根据C编译系统决定。

    7610

    C语言——文件操作

    磁盘(硬盘)上的文件是文件。 在程序设计中,我们⼀般从文件功能的角度来分类 分为 程序⽂件 、 数据⽂件 。...标准流 既然输入输出操作需要通过流来实现,但是当我们从键盘输⼊数据,向屏幕上输出数据,没有打开流 ,这是为什么呢?...事实上,C语⾔程序在启动的时候,默认打开了3个流: stdin - 标准输⼊流。 在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...我们可以知道fgetc是从流中获取一个字符的,这是一个字符输入函数,适用于所有的输入流。...对比 printf --针对标准输出流( stdout )的,将数据以格式化的形式, 输出到屏幕上 scanf ﹣针对标准输入流( stdin )的,从键盘上输入格式化的数据 fprintf

    7010
    领券