SlideShare uma empresa Scribd logo
1 de 41
-- 流式数据的输入输出操作
教学目标 ,[object Object],[object Object],[object Object]
基本概念 ,[object Object],[object Object],在前面的章节中将输出输入的问题都交给了基本输入输出系统来完成 , 也就是从键盘输入数据 , 通过监视器输出计算结果。
基本概念 ,[object Object],[object Object]
9.1 文件和流的概念 ,[object Object],[object Object],[object Object],[object Object]
9.1 文件和流的概念 ,[object Object],[object Object]
9.1 文件和流的概念 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.1.2  文件的模式 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.1.2  文件的模式 如  int 型数 10000 00100111  00010000 内存存储形式 00100111  00010000 二进制形式 00110001  00110000  00110000  00110000 00110000 ASCII 形式 文本文件特点 : 存储量大、速度慢、便于对字符操作 二进制文件特点 : 存储量小、速度快、便于存放中间结果
9.1.2  文件的模式 ,[object Object],[object Object],[object Object]
9.2  文件的使用 ,[object Object],[object Object],[object Object],[object Object],[object Object]
9.2  文件的使用 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],在操作文件以前,应先定义文件指针变量: FILE *fp1, fp2;
9.2  文件的使用 ,[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.1  文件的打开与关闭 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.1  文件的打开与关闭 文件打开模式 Mode 含  义 r 打开一个文本文件只读 w 打开一个文本文件只写 a 打开一个文本文件在尾部追加 rb 打开一个只读的二进制文件 wb 打开一个只写的二进制文件 ab 对二进制文件追加 r+ 打开一个可读   / 写的文本文件 w+ 创建一个新的可读   / 写的文本文件 a+ 打开一个可读   / 写的文本文件 rb+ 打开一个可读   / 写的二进制文件 wb+ 创建一个新的可读   / 写的二进制文件 ab 打开一个可读   / 写的二进制文件
9.2.1  文件的打开与关闭 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.1  文件的打开与关闭 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.1  文件的打开与关闭 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.1  文件的打开与关闭 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],fputc() 函数完成将字符 ch 的值写入所指定的流文件的当前位置处,并将文件指针后移一位。 fputc() 函数的返回值是所写入字符的值,出错时返回 EOF 。   fgetc( ) 函数从输入流的当前位置 读取 一个字符 , 并将文件指针指示器移到下一个字符处 , 如果已到文件尾 , 函数返回 EOF
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],输入:  E:Bookx9_2 ex9_2.c 输出:  上述源文件
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],[object Object],fgets() 函数从流文件 stream 中读取至多 num-1 个字符,并把它们放入 str 指向的字符数组中。读取字符直到遇见回车符或 EOF (文件结束符)为止,或读入了所限定的字符数。   fputs( ) 函数将 str 指向的字符串写入流文件。操作成功时,函数返回 0 值,失败返回非零值。
例 9.4  向磁盘写入字符串,并写入文本文件 test.txt ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
例 9.5( 续 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object]
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],其中, size_t 是 C 语言系统确定的无符号整型。 函数 fwrite 向流 stream 输出一批数据,数据的起始位置由指针 pointer 给定,元素大小是 size ,共 num 个。 函数 fread 的功能正好与 fwrite 对应,它要求读入 num 个数据元素,每个元素的大小为 size ,指针参数 pointer 应指向接受数据的起始存储位置。
9.2.2  文件的读写操作 ,[object Object],[object Object],[object Object]
9.2.3  文件指针的定位 ,[object Object],函数名 函数原型 功能 fseek int fseek( FILE *stream, long offset, int origin ); 根据 origin 的值移动文件指针 rewind void rewind( FILE *stream ); 重返文件起始位置 ftell long ftell( FILE *stream ); 返回文件指针的当前位置
9.2.3  文件指针的定位 ,[object Object],符号常量 值 含义 SEEK_SET 0 从文件开头计算 SEEK_CUR 1 从文件指针当前位置计算 SEEK_END 2 从文件末尾计算 如下列语句: fseek( fp, 5L, 0 ); 其含义为:将文件指针从文件头向下移动  5 个字节 fseek( fp, -10L, 2 ) ; 表示将文件指针从结尾位置向上移动 10 个字节
[object Object],[object Object],{ printf(&quot;Seek error.&quot;); exit(1); } printf(&quot;Byte at %ld is %c.&quot;,  atol(argv[2]), getc(fp)); fclose(fp); return 0; } #include <stdio.h> int main(int argc, char *argv[]){ FILE *fp; if(argc!=3){ printf(&quot;Usage: SEEK filename  byte&quot;); exit(1); } if((fp = fopen(argv[1],  &quot;rb&quot;))==NULL){ printf(&quot;Cannot open file.&quot;); exit(1); } if(fseek(fp, atol(argv[2]),  SEEK_SET)) 注意 : 当对数据不很清楚的情况下,是很难把握偏移量的计算的,所以对于文件指针的移动需要慎重,否则数据很容易读入错误
9.2.4 出错的检测 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.2.4 出错的检测 ,[object Object],#include <string.h> #include <stdio.h> int main(){ FILE *stream; stream = fopen(&quot;test.dat&quot;, &quot;w&quot;); fgetc(stream);  /*  对一个不存在的文件进行读操作  */ if (ferror(stream)){ printf(&quot;Error reading from test.dat&quot;); clearerr(stream);/* 重置错误标记并将文件指针置位 EOF  */ } fclose(stream); return 0; }
9.3  文件系统应用举例 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
9.3  文件系统应用举例 ,[object Object],[object Object],[object Object],[object Object],[object Object],E:Bookype addr.txt zhaoyi  nanjing qianger  beijing sunsan  tianjin lisi  shanghai E:Bookype tel.txt zhaoyi  025-8822334 qianger  010-7766551 sunsan  022-6688536 lisi  021-9955668
小结 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],二进制文件读写函数

Mais conteúdo relacionado

Mais procurados

系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入鍾誠 陳鍾誠
 
MPI use c language
MPI use c languageMPI use c language
MPI use c languageZongYing Lyu
 
Learning python in the motion picture industry by will zhou
Learning python in the motion picture industry   by will zhouLearning python in the motion picture industry   by will zhou
Learning python in the motion picture industry by will zhouWill Zhou
 
Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式ZongYing Lyu
 
Linux command tutorial
Linux command tutorialLinux command tutorial
Linux command tutorial朋 陈
 
系統程式 -- 第 12 章
系統程式 -- 第 12 章系統程式 -- 第 12 章
系統程式 -- 第 12 章鍾誠 陳鍾誠
 
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509tidesq
 
Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509
Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509
Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509tidesq
 
程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體Shu-Yu Fu
 
Erlang开发及应用
Erlang开发及应用Erlang开发及应用
Erlang开发及应用litaocheng
 
Golangintro
GolangintroGolangintro
Golangintro理 傅
 
系統程式 -- 第 11 章
系統程式 -- 第 11 章系統程式 -- 第 11 章
系統程式 -- 第 11 章鍾誠 陳鍾誠
 
系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言鍾誠 陳鍾誠
 
SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具HO-HSUN LIN
 
系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器鍾誠 陳鍾誠
 

Mais procurados (20)

系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入
 
MPI use c language
MPI use c languageMPI use c language
MPI use c language
 
Reverse Engineering - Assembly & Introduction
Reverse Engineering - Assembly & IntroductionReverse Engineering - Assembly & Introduction
Reverse Engineering - Assembly & Introduction
 
Learning python in the motion picture industry by will zhou
Learning python in the motion picture industry   by will zhouLearning python in the motion picture industry   by will zhou
Learning python in the motion picture industry by will zhou
 
Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式Device Driver - Chapter 3字元驅動程式
Device Driver - Chapter 3字元驅動程式
 
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
 
Linux command tutorial
Linux command tutorialLinux command tutorial
Linux command tutorial
 
系統程式 -- 第 5 章
系統程式 -- 第 5 章系統程式 -- 第 5 章
系統程式 -- 第 5 章
 
系統程式 -- 第 12 章
系統程式 -- 第 12 章系統程式 -- 第 12 章
系統程式 -- 第 12 章
 
系統程式 -- 第 4 章
系統程式 -- 第 4 章系統程式 -- 第 4 章
系統程式 -- 第 4 章
 
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
Linux c++ 编程之链接与装载 -基础篇--v0.3--20120509
 
Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509
Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509
Linux c++ 编程之链接与装载 -提高篇--v0.3--20120509
 
程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體
 
Erlang开发及应用
Erlang开发及应用Erlang开发及应用
Erlang开发及应用
 
系統程式 - 附錄
系統程式 - 附錄系統程式 - 附錄
系統程式 - 附錄
 
Golangintro
GolangintroGolangintro
Golangintro
 
系統程式 -- 第 11 章
系統程式 -- 第 11 章系統程式 -- 第 11 章
系統程式 -- 第 11 章
 
系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言
 
SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具
 
系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器
 

Destaque

管理學971商訪B班第2組
管理學971商訪B班第2組管理學971商訪B班第2組
管理學971商訪B班第2組祐承 鄭
 
9789740329572
97897403295729789740329572
9789740329572CUPress
 
Encontrando una Identidad Artistica
Encontrando una Identidad ArtisticaEncontrando una Identidad Artistica
Encontrando una Identidad ArtisticaGabriela Victoria
 
961009手工書書體製作net 惠雯師
961009手工書書體製作net 惠雯師961009手工書書體製作net 惠雯師
961009手工書書體製作net 惠雯師美術 清水
 
971203 [討論]公共定義
971203 [討論]公共定義971203 [討論]公共定義
971203 [討論]公共定義lifan
 
9535005 E Learning
9535005 E Learning9535005 E Learning
9535005 E Learning9535005
 
96 z tov lehodot la-adonai+en
96 z tov lehodot la-adonai+en96 z tov lehodot la-adonai+en
96 z tov lehodot la-adonai+enZoya Sladek
 
980419燕&魚結婚感謝Mv
980419燕&魚結婚感謝Mv980419燕&魚結婚感謝Mv
980419燕&魚結婚感謝Mvdailful
 
英文國基測滿分班招生簡章980525
英文國基測滿分班招生簡章980525英文國基測滿分班招生簡章980525
英文國基測滿分班招生簡章980525dailful
 
971student's
971student's971student's
971student's5045033
 
版面設計980413 美食版
版面設計980413 美食版版面設計980413 美食版
版面設計980413 美食版Louisa Li
 
971119 [網頁]團體車輛租借辦法
971119 [網頁]團體車輛租借辦法971119 [網頁]團體車輛租借辦法
971119 [網頁]團體車輛租借辦法lifan
 
98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)
98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)
98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)Lucrari de licenta
 

Destaque (18)

管理學971商訪B班第2組
管理學971商訪B班第2組管理學971商訪B班第2組
管理學971商訪B班第2組
 
9789740329572
97897403295729789740329572
9789740329572
 
Encontrando una Identidad Artistica
Encontrando una Identidad ArtisticaEncontrando una Identidad Artistica
Encontrando una Identidad Artistica
 
960004a new featured 2011 us_web.pdf
960004a new  featured 2011 us_web.pdf960004a new  featured 2011 us_web.pdf
960004a new featured 2011 us_web.pdf
 
961009手工書書體製作net 惠雯師
961009手工書書體製作net 惠雯師961009手工書書體製作net 惠雯師
961009手工書書體製作net 惠雯師
 
9789862218655
97898622186559789862218655
9789862218655
 
98 Or 2
98 Or 298 Or 2
98 Or 2
 
9789865944068目錄
9789865944068目錄9789865944068目錄
9789865944068目錄
 
971203 [討論]公共定義
971203 [討論]公共定義971203 [討論]公共定義
971203 [討論]公共定義
 
97母語日活動
97母語日活動97母語日活動
97母語日活動
 
9535005 E Learning
9535005 E Learning9535005 E Learning
9535005 E Learning
 
96 z tov lehodot la-adonai+en
96 z tov lehodot la-adonai+en96 z tov lehodot la-adonai+en
96 z tov lehodot la-adonai+en
 
980419燕&魚結婚感謝Mv
980419燕&魚結婚感謝Mv980419燕&魚結婚感謝Mv
980419燕&魚結婚感謝Mv
 
英文國基測滿分班招生簡章980525
英文國基測滿分班招生簡章980525英文國基測滿分班招生簡章980525
英文國基測滿分班招生簡章980525
 
971student's
971student's971student's
971student's
 
版面設計980413 美食版
版面設計980413 美食版版面設計980413 美食版
版面設計980413 美食版
 
971119 [網頁]團體車輛租借辦法
971119 [網頁]團體車輛租借辦法971119 [網頁]團體車輛租借辦法
971119 [網頁]團體車輛租借辦法
 
98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)
98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)
98 analiza corelatiei dintre salarii si productivitatea muncii (s.c. xyz s.a.)
 

Semelhante a 第9章文件

Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践yiditushe
 
File api
File apiFile api
File apiTom Fan
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmiyiditushe
 
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4Tao He
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯liuts
 
Go语言: 互联网时代的C
Go语言: 互联网时代的CGo语言: 互联网时代的C
Go语言: 互联网时代的CGoogol Lee
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學Sita Liu
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试Yiwei Ma
 
第9章 Shell 編程
第9章 Shell 編程第9章 Shell 編程
第9章 Shell 編程kidmany2001
 
函数调用关系工具-2011-孙光福
函数调用关系工具-2011-孙光福函数调用关系工具-2011-孙光福
函数调用关系工具-2011-孙光福Wu Liang
 
07 Structure, File.pdf
07 Structure, File.pdf07 Structure, File.pdf
07 Structure, File.pdfJTLai1
 
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导yiditushe
 
Introduce to Linux command line
Introduce to Linux command lineIntroduce to Linux command line
Introduce to Linux command lineWen Liao
 

Semelhante a 第9章文件 (20)

Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 
File api
File apiFile api
File api
 
六步教你学会简单Rmi
六步教你学会简单Rmi六步教你学会简单Rmi
六步教你学会简单Rmi
 
C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4C语言benchmark覆盖信息收集总结4
C语言benchmark覆盖信息收集总结4
 
Php
PhpPhp
Php
 
gnutool
gnutoolgnutool
gnutool
 
Gnu
GnuGnu
Gnu
 
Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯Cfengine培训文档 刘天斯
Cfengine培训文档 刘天斯
 
Go语言: 互联网时代的C
Go语言: 互联网时代的CGo语言: 互联网时代的C
Go语言: 互联网时代的C
 
1 C入門教學
1  C入門教學1  C入門教學
1 C入門教學
 
Puppet安装测试
Puppet安装测试Puppet安装测试
Puppet安装测试
 
Flex国际化I18N解决方案
Flex国际化I18N解决方案Flex国际化I18N解决方案
Flex国际化I18N解决方案
 
第9章 Shell 編程
第9章 Shell 編程第9章 Shell 編程
第9章 Shell 編程
 
SCJP ch16
SCJP ch16SCJP ch16
SCJP ch16
 
Ch7 教學
Ch7 教學Ch7 教學
Ch7 教學
 
函数调用关系工具-2011-孙光福
函数调用关系工具-2011-孙光福函数调用关系工具-2011-孙光福
函数调用关系工具-2011-孙光福
 
07 Structure, File.pdf
07 Structure, File.pdf07 Structure, File.pdf
07 Structure, File.pdf
 
Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
 
15 1 스트림
15 1 스트림15 1 스트림
15 1 스트림
 
Introduce to Linux command line
Introduce to Linux command lineIntroduce to Linux command line
Introduce to Linux command line
 

Mais de summerfeng

第8章结构体与共用体
第8章结构体与共用体第8章结构体与共用体
第8章结构体与共用体summerfeng
 
第7章预编译命令
第7章预编译命令第7章预编译命令
第7章预编译命令summerfeng
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句summerfeng
 
第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式summerfeng
 

Mais de summerfeng (8)

第8章结构体与共用体
第8章结构体与共用体第8章结构体与共用体
第8章结构体与共用体
 
第7章预编译命令
第7章预编译命令第7章预编译命令
第7章预编译命令
 
第6章指针
第6章指针第6章指针
第6章指针
 
第5章数组
第5章数组第5章数组
第5章数组
 
第4章函数
第4章函数第4章函数
第4章函数
 
第3章算法与控制语句
第3章算法与控制语句第3章算法与控制语句
第3章算法与控制语句
 
第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式第2章数据类型、运算符和表达式
第2章数据类型、运算符和表达式
 
第1章概述
第1章概述第1章概述
第1章概述
 

Último

哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书jakepaige317
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 

Último (6)

哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 

第9章文件

  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. 9.1.2 文件的模式 如 int 型数 10000 00100111 00010000 内存存储形式 00100111 00010000 二进制形式 00110001 00110000 00110000 00110000 00110000 ASCII 形式 文本文件特点 : 存储量大、速度慢、便于对字符操作 二进制文件特点 : 存储量小、速度快、便于存放中间结果
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. 9.2.1 文件的打开与关闭 文件打开模式 Mode 含 义 r 打开一个文本文件只读 w 打开一个文本文件只写 a 打开一个文本文件在尾部追加 rb 打开一个只读的二进制文件 wb 打开一个只写的二进制文件 ab 对二进制文件追加 r+ 打开一个可读 / 写的文本文件 w+ 创建一个新的可读 / 写的文本文件 a+ 打开一个可读 / 写的文本文件 rb+ 打开一个可读 / 写的二进制文件 wb+ 创建一个新的可读 / 写的二进制文件 ab 打开一个可读 / 写的二进制文件
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.

Notas do Editor

  1. #include &lt;string.h&gt; #include &lt;stdio.h&gt; struct stu{ /* 定义结构体类型 */ char name[15]; char num[6]; float score[2]; } student; /* 说明结构体变量 */ int main(){ FILE *fp; int i; if ((fp=fopen(&amp;quot;test.txt&amp;quot;,&amp;quot;w&amp;quot;))==NULL) { /* 以文本只写方式打开文件 */ printf(&amp;quot;cannot open file&amp;quot;); exit(0); } printf(&amp;quot;input data:\\n&amp;quot;); for( i=0;i&lt;2;i++){ scanf(&amp;quot;%s %s %f %f&amp;quot;,student.name,student.num, &amp;student.score[0],&amp;student.score[1]); fprintf(fp,&amp;quot;%s %s %7.2f %7.2f\\n&amp;quot;,student.name,student.num, student.score[0], student.score[1]) ; } fclose(fp); if ((fp=fopen(&amp;quot;test.txt&amp;quot;,&amp;quot;r&amp;quot;))==NULL){/* 以文本只读方式打开文件 */ printf(&amp;quot;cannot open file&amp;quot;); exit(0); } printf(&amp;quot;output from file\\n&amp;quot;); /* 从文件读入 */ while ( fscanf(fp,&amp;quot;%s %s %f %f\\n&amp;quot;,student.name,student.num, &amp;student.score[0], &amp;student.score[1]) != EOF ) printf(&amp;quot;%s %s %7.2f %7.2f\\n&amp;quot;,student.name,student.num, student.score[0],student.score[1]); /* 显示到屏幕 */ fclose(fp); return 0; }
  2. #include &lt;string.h&gt; #include &lt;stdio.h&gt; # define N 30 void save(); void open(); struct student{ char name[8]; int num; int age; float score; } stud[N]; int main( ){ int i; for (i=0;i&lt;N;i++) scanf(&amp;quot;%s%d%d%f&amp;quot;,stud[i].name,&amp;stud[i].num, &amp;stud[i].age,&amp;stud[i].score); save( ); printf(&amp;quot;Press any key to show data from file\\n&amp;quot;); getchar(); open(); return 0; } void save(){ FILE *fp; int i; if ((fp=fopen(&amp;quot;score.dat&amp;quot;,&amp;quot;wb&amp;quot;))==NULL){ printf(&amp;quot;cannot open file\\n&amp;quot;); return; } for (i=0;i&lt;N;i++) if (fwrite(&amp;stud[i],sizeof(struct student),1,fp)!=1) printf(&amp;quot;file write error\\n&amp;quot;); fclose(fp); } void open(){ FILE *fp; int i; if ((fp=fopen(&amp;quot;score.dat&amp;quot;,&amp;quot;rb&amp;quot;))==NULL) { printf(&amp;quot;cannot open file\\n&amp;quot;); return; } for (i=0;i&lt;N;i++) if (fread(&amp;stud[i],sizeof(struct student),1,fp)==1) printf(&amp;quot;%-10s%8d%6d%12.2f\\n&amp;quot;,stud[i].name,stud[i].num, stud[i].age,stud[i].score); else{ printf(&amp;quot;file read error\\n&amp;quot;); break; } fclose(fp); }
  3. #include &lt;stdio.h&gt; void fcopy(FILE *, FILE *); int main(int argc, char *argv[]){ FILE *inputfile,*outputfile; char *name = argv[0]; if (argc == 1) { /* 没有参数,从标准输入复制到标准输出 */ fcopy(stdin, stdout); return 0; } else if (argc == 2) { /* 有一个参数,从文件中复制到标准输出 */ if ((inputfile = fopen(argv[1], &amp;quot;r&amp;quot;)) == NULL){ printf(&amp;quot;%s, can&apos;t open input file: %s\\n&amp;quot;, name, argv[1]); exit(0); } else fcopy(inputfile, stdout); } else if (argc == 3) { /* 有两个参数,从文件中复制到指定的文件中 */ if ((inputfile = fopen(argv[1], &amp;quot;r&amp;quot;)) == NULL){ printf(&amp;quot;%s, can&apos;t open input file: %s\\n&amp;quot;, name, argv[1]); exit(0); } if ((outputfile = fopen(argv[2], &amp;quot;w&amp;quot;)) == NULL){ printf(&amp;quot;%s, can&apos;t create output file: %s\\n&amp;quot;, name, argv[2]); exit(0); } else fcopy(inputfile, outputfile); fclose(outputfile); } fclose(inputfile); return 0; } void fcopy(FILE *inputfile, FILE *outputfile){ int c; while ((c = fgetc(inputfile)) != EOF) fputc(c, outputfile); }
  4. #include &lt;string.h&gt; #include &lt;stdio.h&gt; int main(){ FILE *fptr1,*fptr2,*fptr3; /* 定义文件指针 */ char temp[15],temp1[15],temp2[15]; /* 打开文件 */ if ( (fptr1=fopen(&amp;quot;addr.txt&amp;quot;,&amp;quot;r&amp;quot;)) == NULL || (fptr2=fopen(&amp;quot;tel.txt&amp;quot;,&amp;quot;r&amp;quot;)) == NULL) || (fptr3=fopen(&amp;quot;addrtel.txt&amp;quot;,&amp;quot;w&amp;quot;)) == NULL) ){ printf(&amp;quot;cannot open file&amp;quot;); exit(0); } /* 读回的姓名字段长度大于 1 */ while(fscanf(fptr1,&amp;quot;%s&amp;quot;,temp1) != EOF){ fscanf(fptr1,&amp;quot;%s&amp;quot;,temp2); /* 读地址 */ fprintf(fptr3,&amp;quot;%20s&amp;quot;,temp1); /* 写入姓名到合并文件 */ fprintf(fptr3,&amp;quot;%20s&amp;quot;,temp2); /* 写入地址到合并文件 */ strcpy( temp, temp1 ) ; /* 保存姓名字段 */ /* 查找姓名相同的记录 */ do{ fscanf(fptr2,&amp;quot;%s&amp;quot;,temp1); fscanf(fptr2,&amp;quot;%s&amp;quot;,temp2); } while (strcmp(temp,temp1)!=0); rewind( fptr2 ); /* 将文件指针移到文件头,以备下次查找 */ fprintf(fptr3,&amp;quot;%20s\\n&amp;quot;,temp2); /* 将电话号码写入合并文件 */ } fclose( fptr1 ); /* 关闭文件 */ fclose( fptr2 ); fclose( fptr3 ); return 0; }