<4D F736F F D20B5DA31D5C220C7B6C8EBCABDD3A6D3C3B3CCD0F2C9E8BCC6D7DBBACFBDCCB3CC2E646F63>

Size: px
Start display at page:

Download "<4D F736F F D20B5DA31D5C220C7B6C8EBCABDD3A6D3C3B3CCD0F2C9E8BCC6D7DBBACFBDCCB3CC2E646F63>"

Transcription

1 嵌入式应用程序设计综合教程作者 : 华清远见 第 1 章 Linux 标准 I/O 编程 本章目标 在应用开发中经常要访问文件 Linux 下读写文件的方式有两大类 : 标准 I/O 和文件 I/O 其中标准 I/O 是最常用也是最基本的内容, 希望读者好好掌握 本章主要内容 : Linux 系统调用和用户编程接口 (API); Linux 标准 I/O 概述 ; 标准 I/O 操作

2 1.1 Linux 系统调用和用户编程接口 系统调用 操作系统负责管理和分配所有的计算机资源 为了更好地服务于应用程序, 操作系统提供了一组特殊接口 系统调用 通过这组接口用户程序可以使用操作系统内核提供的各种功能 例如分配内存 创建进程 实现进程之间的通信等 为什么不允许程序直接访问计算机资源? 答案是不安全 单片机开发中, 由于不需要操作系统, 所以开发人员可以编写代码直接访问硬件 而在 32 位嵌入式系统中通常都要运行操作系统, 程序访问资源的方式就发生了改变 操作系统基本上都支持多任务, 即同时可以运行多个程序 如果允许程序直接访问系统资源, 肯定会带来很多问题 因此, 所有软硬件资源的管理和分配都由操作系统负责 程序要获取资源 ( 如分配内存, 读写串口 ) 必须通过操作系统来完成, 即用户程序向操作系统发出服务请求, 操作系统收到请求后执行相关的代码来处理 用户程序向操作系统提出请求的接口就是系统调用 所有的操作系统都会提供系统调用接口, 只不过不同的操作系统提供的系统调用接口各不相同 Linux 系统调用接口非常精简, 它继承了 UNIX 系统调用中最基本和最有用的部分 这些系统调用按照功能大致可分为进程控制 进程间通信 文件系统控制 存储管理 网络管理 套接字控制 用户管理等几类 用户编程接口 前面提到利用系统调用接口程序可以访问各种资源, 但在实际开发中程序并不直接使用系统调用接口, 而是使用用户编程接口 (API) 为什么不直接使用系统调用接口呢? 原因如下 (1) 系统调用接口功能非常简单, 无法满足程序的需求 (2) 不同操作系统的系统调用接口不兼容, 程序移植时工作量大 用户编程接口通俗的解释就是各种库 ( 最重要的就是 C 库 ) 中的函数 为了提高开发效率,C 库中实现了很多函数 这些函数实现了常用的功能, 供程序员调用 这样一来, 程序员不需要自己编写这些代码, 直接调用库函数就可以实现基本功能, 提高了代码的复用率 使用用户编程接口还有一个好处 : 程序具有良好的可移植行 几乎所有的操作系统上都实现了 C 库, 所以程序通常只需要重新编译一下就可以在其他操作系统下运行 用户编程接口 (API) 在实现时, 通常都要依赖系统调用接口 例如, 创建进程的 A PI 函数 fork() 对应于内核空间的 sys_fork() 系统调用 很多 API 函数需要通过多个系统调用来完成其功能 还有一些 API 函数不需要调用任何系统调用 在 Linux 中用户编程接口 (API) 遵循了在 UNIX 中最流行的应用编程界面标准 POSIX 标准 POSIX 标准是由 IEEE 和 ISO/IEC 共同开发的标准系统 该标准基于当时现有的 UNIX 实践和经验, 描述了操作系统的系统调用编程接口 ( 实际上就是 API), 用于保证应用程序可以在源代码一级上在多种操作系统上移植运行 这些系统调用编程接口主要是通过 C 库 (libc) 实现的 1.2 Linux 标准 I/O 概述 标准 I/O 的由来 标准 I/O 指的是 ANSI C 中定义的用于 I/O 操作的一系列函数 2

3 只要操作系统中安装了 C 库, 标准 I/O 函数就可以调用 换句话说, 如果程序中使用的是标准 I/O 函数, 那么源代码不需要修改就可以在其他操作系统下编译运行, 具有更好的可移植性 除此之外, 使用标准 I/O 可以减少系统调用的次数, 提高系统效率 标准 I/O 函数在执行时也会用到系统调用 在执行系统调用时,Linux 必须从用户态切换到内核态, 处理相应的请求, 然后再返回到用户态 如果频繁地执行系统调用会增加系统的开销 为了避免这种情况, 标准 I/O 使用时在用户空间创建缓冲区, 读写时先操作缓冲区, 在合适的时机再通过系统调用访问实际的文件, 从而减少了使用系统调用的次数 流的含义 标准 I/O 的核心对象就是流 当用标准 I/O 打开一个文件时, 就会创建一个 FILE 结构体描述该文件 ( 或者理解为创建一个 FILE 结构体和实际打开的文件关联起来 ) 我们把这个 FILE 结构体形象地称为流 标准 I/O 函数都基于流进行各种操作 标准 I/O 中的流的缓冲类型有以下三种 (1) 全缓冲 : 在这种情况下, 当填满标准 I/O 缓冲区后才进行实际 I/O 操作 对于存放在磁盘上的普通文件用标准 I/O 打开时默认是全缓冲的 当缓冲区已满或执行 flush 操作时才会进行磁盘操作 (2) 行缓冲 : 在这种情况下, 当在输入和输出中遇到换行符时执行 I/O 操作 标准输入流和标准输出流就是使用行缓冲的典型例子 (3) 无缓冲 : 不对 I/O 操作进行缓冲, 即在对流的读写时会立刻操作实际的文件 标准出错流是不带缓冲的, 这就使得出错信息可以立刻显示在终端上, 而不管输出的内容是否包含换行符 在下面讨论具体函数时, 请读者注意区分以上的 3 种不同情况 1.3 标准 I/O 编程 本节所要讨论的 I/O 操作都是基于流的, 它符合 ANSI C 的标准 有一些函数读者已经非常熟悉了 ( 如 printf() scantf() 函数等 ), 因此本节中仅介绍最常用的函数 流的打开 使用标准 I/O 打开文件的函数有 fopen() fdopen() 和 freopen() 它们可以以不同的模式打开文件, 都返回一个指向 FILE 的指针, 该指针指向对应的 I/O 流 此后, 对文件的读写都是通过这个 FILE 指针来进行 其中 fopen() 可以指定打开文件的路径和模式,fdopen() 可以指定打开的文件描述符和模式, 而 freopen() 除可指定打开的文件 模式外, 还可指定特定的 I/O 流 fopen() 函数格式如表 1.1 所示 表 1.1 fopen() 函数语法要点 FILE * fopen(const char * path, const char * mode); path: 包含要打开的文件路径及文件名 mode: 文件打开方式, 详细信息参考表 1.2 成功 : 指向 FILE 的指针失败 :NULL 其中,mode 用于指定打开文件的方式 表 1.2 说明了 fopen() 中 mode 的各种取值 3

4 表 1.2 r 或 rb r+ 或 r+b w 或 wb w+ 或 w+b a 或 ab a+ 或 a+b mode 取值说明 打开只读文件, 该文件必须存在打开可读写的文件, 该文件必须存在 打开只写文件, 若文件存在则文件长度为 0, 即会擦写文件以前的内容 ; 若文件不存在则建立该文件 打开可读写文件, 若文件存在则文件长度为 0, 即会擦写文件以前的内容 ; 若文件不存在则建立该文件 以附加的方式打开只写文件 若文件不存在, 则会建立该文件 ; 如果文件存在, 写入的数据会被加到文件尾, 即文件原先的内容会被保留 以附加方式打开可读写的文件 若文件不存在, 则会建立该文件 ; 如果文件存在, 写入的数据会被加到文件尾后, 即文件原先的内容会被保留 注意 : 在每个选项中加入 b 字符用来告诉函数库打开的文件为二进制文件, 而非纯文本文件 不过在 Linux 系统中会忽略该符号 当用户程序运行时, 系统自动打开了三个流 : 标准输入流 stdin 标准输出流 stdout 和标准错误流 stderr stdin 用来从标准输入设备 ( 默认是键盘 ) 中读取输入内容 ;stdout 用来向标准输出设备 ( 默认是当前终端 ) 输出内容 ;stderr 用来向标准错误设备 ( 默认是当前终端 ) 输出错误信息 流的关闭 关闭流的函数为 fclose(), 该函数将流的缓冲区内的数据全部写入文件中, 并释放相关资源 fclose() 函数格式如表 1.3 所示 表 1.3 fclose() 函数语法要点 int fclose(file * stream); stream: 已打开的流指针成功 :0 程序结束时会自动关闭所有打开的流 错误处理 标准 I/O 函数执行时如果出现错误, 会把错误码保存在 errno 中 程序员可以通过相应的函数打印错误信息 错误处理相关函数 perror 如表 1.4 所示 表 1.4 perror() 函数语法要点 4

5 void perror(const char* s); s: 在标准错误流上输出的信息 无 int main() FILE *fp; // 定义流指针 if ((fp = fopen("1.txt", "r")) == NULL) // NULL 是系统定义的宏, 其值为 0 perror("fail to fopen"); // 输出错误信息 fclose(fp); 如果文件 1.txt 不存在, 程序执行时会打印如下信息 : fail to fopen: No such file or directory 错误处理相关函数 strerror 如表 1.5 所示 表 1.5 strerror() 函数语法要点 #include <string.h> #include <errno.h> char *strerror(int errnum); 错误码错误码对应的错误信息 int main() FILE *fp; if ((fp = fopen("1.txt", "r")) == NULL) printf("fail to fopen: %s\n", strerror(errno)); fclose(fp); 如果文件 1.txt 不存在, 程序执行时会打印如下信息 : fail to fopen: No such file or directory 流的读写 5

6 1. 按字符 ( 字节 ) 输入 / 输出 字符输入 / 输出函数一次仅读写一个字符 其中字符输入 / 输出函数如表 1.6 和表 1.7 所示 表 1.6 字符输入函数语法要点 int getc(file * stream); int fgetc(file * stream); int getchar(void); stream: 要输入的文件流 成功 : 读取的字符 getc() 和 fgetc () 从指定的流中读取一个字符 ( 节 ),getchar() 从 stdin 中读取一个字符 ( 节 ) 表 1.7 字符输出函数语法要点 int putc(int c, FILE * stream); int fputc(int c, FILE * stream); int putchar(int c); 成功 : 输出的字符 c putc() 和 fputc() 向指定的流输出一个字符 ( 节 ),putchar() 向 stdout 输出一个字符 ( 节 ) 下面这个实例结合 fputc() 和 fgetc(), 循环从标准输入读取任意个字符并将其中的数字输出到标准输出 /*fput.c*/ int main() int c; while ( 1 ) c = fgetc(stdin); // 从键盘读取一个字符 if ((c >= '0') && (c <= '9')) fputc(c, stdout); // 若输入的是数字, 输出 if (c == '\n') break; // 若遇到换行符, 跳出循环 运行结果如下 $./a.out abc98io#4/wm 984 6

7 2. 按行输入 / 输出 行输入 / 输出函数一次操作一行 其中行输入 / 输出函数如表 1.8 和表 1.9 所示 表 1.8 行输入函数语法要点 char * gets(char *s) char * fgets(char * s, int size, FILE * stream) s: 存放输入字符串的缓冲区首地址 size: 输入的字符串长度 stream: 对应的流 成功 :s 失败或到达文件末尾 :NULL gets 函数容易造成缓冲区溢出, 不推荐大家使用 fgets 从指定的流中读取一个字符串, 当遇到 \n 或读取了 size-1 个字符后返回 注意,fgets 不能保证每次都能读出一行 表 1.9 行输出函数语法要点 int puts(const char *s) int fputs(const char * s, FILE * stream) s: 存放输出字符串的缓冲区首地址 stream: 对应的流成功 :s 失败 :NULL 下面以 fgets() 为例计算一个文本文件的行数 /*fgets.c*/ #include <string.h> int main(int argc, char *argv[]) int line = 0; char buf[128]; FILE *fp; if (argc < 2) printf("usage : %s <file>\n", argv[0]); 7

8 if ((fp = fopen(argv[1], "r")) == NULL) perror("fail to fopen"); while(fgets(buf, 128, fp)!= NULL) if (buf[strlen(buf)-1] == '\n') line++; printf("the line of %s is %d\n", argv[1], line); 运行该程序, 结果如下 $./a.out test.txt The line of test.txt is 以指定大小为单位读写文件在文件流被打开之后, 可对文件流按指定大小为单位进行读写操作 fread() 函数格式如表 1.10 所示 表 1.10 fread() 函数语法要点 size_t fread(void * ptr, size_t size, size_t nmemb, FILE * stream); ptr: 存放读入记录的缓冲区 size: 读取的每个记录的大小 nmemb: 读取的记录数 stream: 要读取的文件流成功 : 返回实际读取到的 nmemb 数目 fwrite() 函数格式如表 1.11 所示 表 1.11 fwrite() 函数语法要点 size_t fwrite(const void * ptr, size_t size, size_t nmemb, FILE * stream); ptr: 存放写入记录的缓冲区 size: 写入的每个记录的大小 nmemb: 写入的记录数 stream: 要写入的文件流 8

9 成功 : 返回实际写入的 nmemb 数目 流的定位 每个打开的流内部都有一个当前读写位置 流在打开时, 当前读写位置为 0, 表示文件的开始位置 每读写一次后, 当前读写位置自动增加实际读写的大小 在读写流之间可先对流进行定位, 即移动到指定的位置再操作 流的定位相关函数如表 1.12 和表 1.13 所示 表 1.12 fseek 函数语法要点 int fseek(file * stream, long offset, int whence); stream: 要定位的文件流 offset : 相对于基准值的偏移量 whence: 基准值 SEEK_SET 代表文件起始位置 SEEK_END 代表文件结束位置 SEEK_CUR 代表文件当前读写位置成功 :0 表 1.13 ftell() 函数语法要点 long ftell( FILE * stream); stream: 要定位的文件流成功 : 返回当前读写位置 下面的例子获取一个文件的大小 /*ftell.c*/ int main(int argc, char *argv[]) FILE *fp; if (argc < 2) printf("usage : %s <file>\n", argv[0]); 9

10 if ((fp = fopen(argv[1], "r")) == NULL) perror("fail to fopen"); fseek(fp, 0, SEEK_END); printf("the size of %s is %ld\n", argv[1], ftell(fp)); 运行该程序, 结果如下 $./a.out test.txt The size of test.txt is 格式化输入输出 格式化输入 / 输出函数可以指定输入 / 输出的具体格式, 包括读者已经非常熟悉的 printf() scanf() 等函数 以下简要介绍它们的格式, 如表 1.14~ 表 1.15 所示 表 1.14 函数传入值 格式化输入函数 int scanf(const char *format, ); int fscanf(file *fp, const char *format, ); int sscanf(char *buf, const char *format, ); format: 输入的格式 fp: 作为输入的流 buf: 作为输入的缓冲区 成功 : 输出字符数 (sprintf 返回存入数组中的字符数 ) 表 1.15 格式化输出函数 int printf(const char *format, ); int fprintf(file *fp, const char *format, ); int sprintf(char *buf, const char *format, ); format: 输出的格式 函数参值 fp: 接收输出的流 buf: 接收输出的缓冲区 成功 : 输出字符数 (sprintf 返回存入数组中的字符数 ) 10

11 fprintf 和 sprintf 在应用开发中经常会使用, 建议读者查看其帮助信息掌握用法 1.4 实验内容 文件的复制 1. 实验目的通过实现文件的复制, 掌握流的基本操作 2. 实验内容在程序中分别打开源文件和目标文件 循环从源文件中读取内容并写入目标文件 3. 实验步骤 (1) 设计流程 检查参数 打开源文件 打开目标文件 循环读写文件 关闭文件 (2) 编写代码 /*mycopy.c*/ #include <errno.h> #define N 64 int main(int argc, char *argv[]) int n; char buf[n]; FILE *fps, *fpd; if (argc < 3) printf("usage : %s <src_file> <dst_file>\n", argv[0]); if ((fps = fopen(argv[1], "r")) == NULL) fprintf(stderr, "fail to fopen %s : %s\n", argv[1], strerror(errno)); if ((fpd = fopen(argv[2], "w")) == NULL) fprintf(stderr, "fail to fopen %s : %s\n", argv[2], strerror(errno)); fclose(fps); 11

12 while((n = fread(buf, 1, N, fps)) >= 0) fwrite(buf, 1, N, fpd); fclose(fps); fclose(fpd); 循环记录系统时间 1. 实验目的获取系统时间 在程序中延时 流的格式化输出 2. 实验内容程序中每隔一秒读取一次系统时间并写入文件 3. 实验步骤 (1) 设计流程 打开文件 获取系统时间 写入文件 延时 1s 返回第二步 ( 获取系统时间 ) (2) 编写代码 /*mycopy.c*/ #include <time.h> #include <unistd.h> #define N 64 int main(int argc, char *argv[]) int n; char buf[n]; FILE *fps; time_t t; if (argc < 2) printf("usage : %s <file>\n", argv[0]); if ((fp = fopen(argv[1], "w")) == NULL) perror("fail to fopen"); 12

13 while( 1 ) time(&t); // 获取系统时间 fprintf(fp, "%s\n", ctime(&t)); // 将秒数转换成本地时间并写入指定的流 sleep(1); // 延时 1s fclose(fp); 小结本章首先讲解了系统调用 用户函数接口和系统命令之间的联系和区别 接下来本章重点介绍了标准 I/O 的相关函数, 建议读者以流的概念为出发点理解标准 I/O 的特点, 并通过练习掌握标准 I/O 常用函数的用法 最后, 本章安排了两个实验, 分别是文件复制和记录系统时间, 希望读者认真分析代码 思考与练习 1. 系统调用和用户编程接口的联系和区别是什么? 2. 标准 I/O 有哪些特点? 3. 分别用字符方式和按行访问方式实现文件的复制 联系方式 集团官网 : 嵌入式学院 : 移动互联网学院 : 企业学院 : 物联网学院 : 研发中心 :dev.hqyj.com 集团总部地址 : 北京市海淀区西三旗悦秀路北京明园大学校内华清远见教育集团 全国免费咨询电话 : 双休日及节假日请致电值班手机 : 在线咨询 : 张老师 QQ( ), 王老师 QQ( ), 杨老师 QQ( ) 企业培训洽谈专线 : 院校合作洽谈专线 : , 在线咨询 :QQ( ) 13

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

C

C C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101

More information

附錄C.doc

附錄C.doc C C C-1 C -2 C -3 C -4 C -5 / C -6 2 C/C++ C-1 FILE* fopen(const char* filename, const char* mode) filename NULL FILE* freopen(const

More information

プログラムの設計と実現II

プログラムの設計と実現II UNIX C ls mkdir man http://www.tj.chiba-u.jp/lecture/prog2/ Ctrl+x, Ctrl+s ( )..[4]% gcc Wall o hoge hoge.c..[5]%./hoge 1 : 1 2 : 2 3 : 3 4 : 0 6..[6]% (! )..[4]% gcc Wall o hoge hoge.c..[5]%!g gcc Wall

More information

新版 明解C言語入門編

新版 明解C言語入門編 328, 4, 110, 189, 103, 11... 318. 274 6 ; 10 ; 5? 48 & & 228! 61!= 42 ^= 66 _ 82 /= 66 /* 3 / 19 ~ 164 OR 53 OR 164 = 66 ( ) 115 ( ) 31 ^ OR 164 [] 89, 241 [] 324 + + 4, 19, 241 + + 22 ++ 67 ++ 73 += 66

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

新・解きながら学ぶC言語

新・解きながら学ぶC言語 330!... 67!=... 42 "... 215 " "... 6, 77, 222 #define... 114, 194 #include... 145 %... 21 %... 21 %%... 21 %f... 26 %ld... 162 %lf... 26 %lu... 162 %o... 180 %p... 248 %s... 223, 224 %u... 162 %x... 180

More information

第7章 数组

第7章  数组 第 12 章文件 内容 自定义类型 (typedef) 文件是什么?C 语言如何处理文件? 文本文件和二进制文件 打开 关闭文件 文件读写程序 其它相关函数 2 内容 自定义类型 (typedef) 文件是什么?C 语言如何处理文件? 文本文件和二进制文件 打开 关闭文件 文件读写程序 其它相关函数 3 自定义类型 (typedef) 自定义类型 (typedef) typedef < 已有类型名

More information

文件

文件 CH10 文件 1 文件的概念 一 文件分类 二 文件的组织结构 : ASCII 码文件 ( 文本文件 ) 二进制文件 文件是二进制代码的, 则文件就是字节流 文件是 ASCII 码的, 则文件就是字符流, 也是字节流 1 如 : 对于整型变量 x, 其值为 32767 若以文本方式存放, 则共有 5 个字符, 内容为 : 00110011 00110010 00110111 00110110 00110111

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

Microsoft PowerPoint - 07_IO.ppt

Microsoft PowerPoint - 07_IO.ppt I/O 设备 C 程序设计语言 第 7 章 I/O 孙志岗 sun@hit.edu.cn http://sunner.cn 输入设备 键盘 鼠标 软盘 硬盘 光驱 ( 以文件的形式 ) 串行口 并行口 USB 接口 IEEE1394 口 网络端口 扫描仪 视频采集卡 电视卡 游戏杆 话筒 输出设备 显示器 打印机 软盘 硬盘 CD-RW/DVD RW/DVD-RW( ( 以文件的形式 ) 串行口 并行口

More information

chap12.ppt

chap12.ppt 第十二章 文件 C ( 前所讲 ) 程序 ( 可包含若干源程序文件 ) 文件 也属于. 目的 : 使程序操作中的数据得以长期保存 一 概述 OS 以文件为单位对数据进行存储管理 流与文件流 :C 提供的一个 I/O 统一接口, 与具体的被访问设备无关 把 I/O 工作抽象成从源到目地的流, 所有的 I/O 通过流来进行, 所有流都具有相同的行为 文件 : 指具体的实际设备 ( 一切具有 I/O 能力的外部设备

More information

第3章 类型、运算符与表达式

第3章 类型、运算符与表达式 Files C Programming Language Li Hanjing I/O 设备 输入设备 键盘 鼠标 软盘 硬盘 光驱 ( 以文件的形式 ) 串行口 并行口 USB 接口 IEEE1394 口 网络端口 扫描仪 视频采集卡 电视卡 游戏杆 话筒 输出设备 显示器 打印机 软盘 硬盘 CD-RW/DVD-RW( 以文件的形式 ) 串行口 并行口 USB 接口 IEEE1394 口 网络端口

More information

Microsoft PowerPoint - 01_Introduction.ppt

Microsoft PowerPoint - 01_Introduction.ppt Hello, World C 程序设计语言 第 1 章章观其大略 孙志岗 sun@hit.edu.cn http://sunner.cn prf("hello,, world\n"); 超级无敌考考你 : 如何把 hello 和 world 分别打印在两行? 2004-12-19 A Tutorial Introduction 2 hello.c 打印华氏温度与摄氏温度对照表 计算公式 : C=(5/9)(

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 第 13 章外存中数据的组织 文件 本章的基本内容是 : 概述 文件的打开与关闭 文件的读写操作 任务 13.1 统计入学成绩 ( 文件版 ) 问题 某大学的博士入学考试科目为外语和两门专业课, 对于每个考生, 输入各科考试成绩并计算总分 要求用文件实现 想法 已经录入的成绩信息应该用文件保存下来, 已经计算的总分也应该保存到文件中, 并已追加方式继续录入 算法 文件 student.txt 存放学生的成绩信息,

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

Microsoft PowerPoint - w22

Microsoft PowerPoint - w22 文件与输入输出 8.2 文件的使用 北京大学数学科学学院 2010-6-7 文件的打开和关闭 FILE *fopen(const char *filename, const char *mode); 参数 :filename 是文件名 ;mode 指明文件打开方式 ; 功能 : 打开文件, 返回文件指针 ( 通过文件指针可进行各种文件操作 ); 如文件打开出错, 返回空指针值 ( 必须检查函数的返回值

More information

没有幻灯片标题

没有幻灯片标题 位运算 C 语言既具有高级语言的特点, 又具有低级语言的功能 所谓位运算是指进行二进制位的运算 C 语言提供的位运算 : 说明 : 1 位运算符中除 ~ 以外, 均为二目 ( 元 ) 运算符, 即要求两侧各有一个运算量 2 运算量只能是整形或字符型的数据, 不能为实型数据 3 计算机中的数据是以补码的形式存储的, 因而进行位运算时, 是以补码进行运算 按位与 运算符 (&) 按位或 运算符 ( )

More information

实际问题 : 1 职工信息管理系统 2 学生选课系统 3 飞机订票系统 4 图书信息管理系统 5 图象处理

实际问题 : 1 职工信息管理系统 2 学生选课系统 3 飞机订票系统 4 图书信息管理系统 5 图象处理 实际问题 : 1 职工信息管理系统 2 学生选课系统 3 飞机订票系统 4 图书信息管理系统 5 图象处理 10.1 C 文件概述 文件 : 存储在外部介质上数据的集合, 是操作系统数据管理的单位使用数据文件的目的 文件分类 1 数据文件的改动不引起程序的改动 程序与数据分离 2 不同程序可以访问同一数据文件中的数据按文件的逻辑结构 : 数据共享 3 能长期保存程序运行的中间数据或结果数据 记录文件

More information

从问题到程序——文件及输入输出

从问题到程序——文件及输入输出 文件与输入输出 2011-06-01 文件概念 3 流和文件指针 C 语言中文件 IO 采用流概念 :IO 的对象是文件, 程序与文件交换信息需要与之建立联系 ( 流 ); 从文件输入时程序需要创建与文件关联的输入流 ; 程序向文件输出要创建输出流 ; 也可创建输入输出流 ; 建立联系 ( 创建流 ) 的操作称作打开文件, 文件打开后即可操作 ; 不再使用一个文件时可切断联系 ( 撤消对应的流 ),

More information

C/C++ - 字符串与字符串函数

C/C++ - 字符串与字符串函数 C/C++ Table of contents 1. 2. 3. 4. 1 char C 2 char greeting [50] = " How " " are " " you?"; char greeting [50] = " How are you?"; 3 printf ("\" Ready, go!\" exclaimed John."); " Ready, go!" exclaimed

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

1. SDK 概述 Arcsoft Photo Styling SDK 可以将输入图像转化为具有指定风格的图像 图像风格主要是指色调 笔触 线条等图像的特异性表现形式 存储某一艺术图像风格模板的文件将按需要发布给 SDK 使用者 借助 SDK 和风格模板文件, 用户可以开发图像风格化等图像美化类应用

1. SDK 概述 Arcsoft Photo Styling SDK 可以将输入图像转化为具有指定风格的图像 图像风格主要是指色调 笔触 线条等图像的特异性表现形式 存储某一艺术图像风格模板的文件将按需要发布给 SDK 使用者 借助 SDK 和风格模板文件, 用户可以开发图像风格化等图像美化类应用 Arcsoft Photo Styling SDK 开发文档 目录 Arcsoft Photo Styling SDK 开发文档... 1 1. SDK 概述... 2 2. SDK 运行环境及相关指标... 2 2.1 运行环境... 2 2.2 运行指标... 3 3. API 说明... 3 3.1 函数... 3 APS_FSDK_Get_Version... 3 APS_FSDK_InitEngine...

More information

<4D F736F F D20B5DA33D5C220CAFDBEDDB5C4CAE4C8EBCAE4B3F62E646F63>

<4D F736F F D20B5DA33D5C220CAFDBEDDB5C4CAE4C8EBCAE4B3F62E646F63> 嵌入式 Linux C 语言程序 设计基础教程作者 : 华清远见 第 3 章数据的输入输出 本章目标 在上一章中, 读者了解了嵌入式 Linux C 语言的数据相关的知识, 包括数据类型 变量和常量等 本 章继续介绍 C 语言中与数据有关的知识, 数据的输入输出 通过本章的学习, 读者将会掌握如下内容 : 字符输出函数 putchar 格式化输出函数 printf 字符输入函数 getchar 格式化输入函数

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7

1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7 1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7-80097 - 564-9 /TP 8 : 10. 00 ,,,, 1994 NCRE,,, ( ),,,,,

More information

Microsoft Word - chap13.doc

Microsoft Word - chap13.doc ï FILE dã Ä o rô qî ô Ö ƒù å o ô ÃÓ FILE Ã Ù Ö o v-> ª w ï FILE d wã +1 ~ c:\temp w Õx test.dat Ã Û vä à n ïw à test.dat 13-2a /* File name: ex13-2a.c */ #include char ch; fptr = fopen("c:\\temp\\test.dat",

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

第十一章 文件和数据的导入与导出

第十一章  文件和数据的导入与导出 第十一章 文件和数据的导入与导出 本机数据文件存储与打开 数据导入与导出 低级 IO 文件 1 save 和 load 命令 save 保存工作区间的变量 ; load 调用外部变量和数据 >>a=1;b=2;c=3;d=[1,2;3,4]; >>save file1 a b c d % 将变量 a,b,c,d 保存在 file1.mat 文件中. >>save file2 a b % 将变量 a,b

More information

Microsoft Word - CPE考生使用手冊160524.docx

Microsoft Word - CPE考生使用手冊160524.docx 大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該

More information

11. 下列关于文件的结论中正确的是 ( ) A. 对文件操作必须先关闭文件 B. 对文件操作必须先打开文件 C. 对文件的操作顺序没有统一规定 D. 以上三种答案全是错误的 12. 若以 a+ 方式打开一个已存在的文件, 则以下叙述正确的是 ( ) A. 文件打开时, 原有文件内容不被删除, 位置

11. 下列关于文件的结论中正确的是 ( ) A. 对文件操作必须先关闭文件 B. 对文件操作必须先打开文件 C. 对文件的操作顺序没有统一规定 D. 以上三种答案全是错误的 12. 若以 a+ 方式打开一个已存在的文件, 则以下叙述正确的是 ( ) A. 文件打开时, 原有文件内容不被删除, 位置 单元 5 构造类型程序设计 文件 同步训练 一 单项选择题 1. 系统的标准输入文件是指 ( ) A. 键盘 B. 显示器 C.U 盘 D. 硬盘 2. 在进行文件操作时, 写文件的一般含义是 ( ) A. 将计算机内存在的信息存入磁盘 B. 将磁盘中的信息存入计算机内存 C. 将计算机 CPU 中的信息存入磁盘 D. 将磁盘中的信息存入计算机 CPU 3. 系统的标准输出文件是指 ( ) A. 键盘

More information

10 系统级 I/O 2017 年 4 月 5 日 9: 输入 / 输出 (I/O) 是在主存和外部设备之间拷贝数据的过程 输入是从 I/O 设备拷贝数据到主存, 输出是从主存拷贝数据到 I/O 设备 了解 I/O 的好处 : a. 帮助理解其它的系统概念 ; b. 有时候除了使用

10 系统级 I/O 2017 年 4 月 5 日 9: 输入 / 输出 (I/O) 是在主存和外部设备之间拷贝数据的过程 输入是从 I/O 设备拷贝数据到主存, 输出是从主存拷贝数据到 I/O 设备 了解 I/O 的好处 : a. 帮助理解其它的系统概念 ; b. 有时候除了使用 10 系统级 I/O 2017 年 4 月 5 日 9:20 2. 输入 / 输出 (I/O) 是在主存和外部设备之间拷贝数据的过程 输入是从 I/O 设备拷贝数据到主存, 输出是从主存拷贝数据到 I/O 设备 了解 I/O 的好处 : a. 帮助理解其它的系统概念 ; b. 有时候除了使用 Unix I/O 别无选择 分区 深入理解计算机系统 笔记的第 1 页 10.1 Unix I/O 2017

More information

Microsoft PowerPoint - C-Ch12.ppt

Microsoft PowerPoint - C-Ch12.ppt 檔案的輸入 輸出 12-1 輸入 輸出的基礎 理解資料流 (stream) 的概念 在 C 語言中支援各種輸出入功能的概念, 就稱為資料流 執行附加格式的輸入 輸出 printf() 和 scanf() 是用來輸出 輸入的函數 必須先引入 stdio.h 檔案才能使用這些函數 這兩個函數會以固定的格式進行輸出入, 也可以使用各種不同的轉換規格 使用固定格式的輸出 輸入函數之範例 : int main(void)

More information

ebook15-C

ebook15-C C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

嵌入式Linux开发课程

嵌入式Linux开发课程 嵌入式 Linux 开发课程 ( 应用程序 ) 主讲人 : David.T 课程安排 1. 初识 Linux 环境下的编程 2. Linux 下的磁盘和文件 I/O 操作 3. 流式文件操作 4. 字符串操作回顾 ( 一 ) 初识 Linux 环境下的编程 1. 你的第一个程序 :Helloworld vi helloworld.c #include int main() { printf(

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

[改訂新版]C言語による標準アルゴリズム事典

[改訂新版]C言語による標準アルゴリズム事典 iii C 1991 SEND + MORE = MONEY C 100 2003 Java 2003 27 PC-9800 C BMP SVG EPS BMPSVG WindowsMacLinux Web iv int main() int main(void) EXIT_SUCCESS 0 https://github.com/okumuralab/ algo-c TEX TEX PDF PDF

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 177 [P179] (1) - [P181] [P182] (2) - for [P183] (3) - switch [P184] [P187] [P189] [P194] 178 [ ]; : : int var; : int var[3]; var 2293620 var[0] var[1] 2293620

More information

1

1 1 2 3 4 5 GNUDebugger 6 7 void main(int argc, char **argv){ vulncpy(argv[1]); return; } void vulncpy(char *a){ char buf[30]; strcpy(buf, a); return; } *argv[1] buf Shellcode *argv[1]... &buf &buf 8 strcpy

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

C/C++ Basics

C/C++ Basics 第 十章 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com 265 課程 大綱 與作業系統或其他軟體溝通 (API) [P267] 檔案相關函式表 [P268] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite) 前置處理器

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

Microsoft Word - 2016职称安排修改 -6.22-于.docx

Microsoft Word - 2016职称安排修改 -6.22-于.docx 吉 人 社 办 字 2016 46 号 关 于 印 发 2016 年 吉 林 省 职 称 评 聘 工 作 的 安 排 意 见 的 通 知 各 市 ( 州 ) 长 白 山 管 委 会 县 ( 市 区 ) 人 力 资 源 和 社 会 保 障 局, 省 直 各 单 位 ( 部 门 ) 及 直 属 企 事 业 单 位, 驻 省 中 直 有 关 单 位, 各 评 聘 结 合 改 革 及 试 点 单 位, 省

More information

C/C++ Programming

C/C++ Programming !281 第 十講 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: feis.tw@gmail.com !282 課程 大綱 與作業系統或其他軟體溝通 (API) [P.283] 檔案相關函式表 [P.284] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite)

More information

untitled

untitled 串 串 例 : char ch= a ; char str[]= Hello ; 串 列 ch=getchar(); scanf( %c,&ch); 串 gets(str) scanf( %s,str); 8-1 數 ASCII 例 : char ch= A ; printf( %d,ch); // 65 A ascii =0x41 printf( %c,ch); // A 例 : char ch;

More information

Microsoft PowerPoint - 20-string-s.pptx

Microsoft PowerPoint - 20-string-s.pptx String 1 String/ 1.: char s1[10]; char *s2; char s3[] = "Chan Tai Man"; char s4[20] = "Chan Siu Ming"; char s5[]={'h','e','l','l','o','\0'; 0 1 2 3 4 5 6 7 8 9 10 11 12 s3 C h a n T a i \0 M a n \0 printf

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

Ps22Pdf

Ps22Pdf ( 98 ) C ( ) ( )158 1998 C : C C C,,, C,, : C ( ) : : (, 100084) : : : 7871092 1/ 16 :18 25 :415 : 2000 3 1 2000 3 1 : ISBN 7 302 01166 4/ T P432 : 00016000 : 22 00 ( 98 ) 20 90,,, ;,,, 1994, 1998, 160,

More information

C/C++ - 字符输入输出和字符确认

C/C++ - 字符输入输出和字符确认 C/C++ Table of contents 1. 2. getchar() putchar() 3. (Buffer) 4. 5. 6. 7. 8. 1 2 3 1 // pseudo code 2 read a character 3 while there is more input 4 increment character count 5 if a line has been read,

More information

Microsoft Word - 考试大纲-2015-56(2)

Microsoft Word - 考试大纲-2015-56(2) 考 试 大 纲 2015 版 首 都 师 范 大 学 信 息 工 程 学 院 目 录 C 语 言 程 序 设 计 考 试 大 纲... 1 DSP 原 理 与 应 用 考 试 大 纲... 7 DSP 原 理 与 应 用 实 验 考 试 大 纲... 9 SOPC 设 计 与 实 践 考 试 大 纲... 10 编 译 原 理 考 试 大 纲... 15 操 作 系 统 考 试 大 纲... 23

More information

C

C C 2017 3 14 1. 2. 3. 4. 2/95 C 1. 3/95 C I 1 // talkback.c: 2 #include 3 #include 4 #define DENSITY 62.4 5 int main(void) 6 { 7 float weight, volume; 8 int size; 9 unsigned long letters;

More information

C, Win-TC Turbo C,, C, C,,,, C C, : Win-TC C, 23,,, 15,, C Turbo C Win-TC Turbo C,,,, 2005 1 W in -TC 1 Win-TC 1 1. Win-TC 1 2. Win-TC 1 3. Win-TC 1 2 Win-TC 3 1. 3 2. 3 3. 4 4. 4 5. 4 6. 4 7. 5 8. 5 9.

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

How to Debug Tuxedo Server printf( Input data is: %s, inputstr); fprintf(stdout, Input data is %s, inputstr); fprintf(stderr, Input data is %s, inputstr); printf( Return data is: %s, outputstr); tpreturn(tpsuccess,

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Microsoft PowerPoint - CPP-Ch Print.ppt [兼容模式]

Microsoft PowerPoint - CPP-Ch Print.ppt [兼容模式] Chapter 17 File Processing http://jssec.seu.edu.cn 杨明 yangming2002@seu.edu.cn OBJECTIVES To create, read, write and update files. Sequential file processing. Random-access file processing. To use high-performance

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

ebook35-21

ebook35-21 21 Linux L i n u x 211 U N I X U N I X I / O F I F O U N I X I n t e r n e t s o c k e t () s o c k e t () send() r e c v ( read() w r i t e () send() r e c v () I n t e r n e t 212 Internet Internet S

More information

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ2 - 参考答案 MASTER 2019 年 5 月 3 日 1 1 TEMPLATE 1 Template 描述 使用模板函数求最大值 使用如下 main 函数对程序进行测试 int main() { double a, b; cin >> a >> b; cout c >> d; cout

More information

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ 考生注意 : 本试卷共七大题, 满分 150 分 考试时间为 3 小时 ; 所有答案均写在答题纸上 ( 注明题号 ), 在此答题一律无效无效 一 选择题 ( 本题共 20 小题, 每小题 2 分, 满分 40 分 ) 1 char ch 1 2 A 0

More information

Microsoft Word - 第2章 Linux文件IO编程.doc

Microsoft Word - 第2章 Linux文件IO编程.doc 嵌入式应用程序设计综合教程作者 : 华清远见 第 2 章 Linux 文件 I/O 编程 本章目标 在 Linux 系统中, 大部分机制都会抽象成一个文件, 这样对它们的操作就像对文件的操作一样 在嵌 入式应用开发中, 文件 I/O 编程是最常用的也是最基本的内容, 希望读者好好掌握 本章主要内容 : Linux 文件 I/O 概述 ; 文件 I/O 操作 2.1 Linux 文件 I/O 概述 2.1.1

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

C程序设计语言

C程序设计语言 C 505 1 C B.W.Kernighan, D.M.Ritchie, 2 C 3 C from C Programming Language ---- P13. 1-4 ; P20 1-8, 1-9, 1-10; P24 1-13; P31 1-18; P34 1-20, 1-22, 1-23; P46 2-3; P49 2-6, 2-8; P58 3-1; P60 3-2; P63 3-3;

More information

ebook15-2

ebook15-2 2 U N I X 2.1 U N I X C U N I X U N I X 80 U N I X ( ) U N I X 2.2 UNIX 2.2.1 ANSI C 1989 C A N S I X 3. 159-1989 ANSI 1989 ISO/IEC 9899:1990 A N S I ( I S O ) ANSI C C UN I X C ANSI 1989 4 Plauger 1992;Kernighan

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

<4D F736F F D20B5DA32D5C220416E64726F6964BFAAB7A2BBB7BEB3B4EEBDA82E646F6378>

<4D F736F F D20B5DA32D5C220416E64726F6964BFAAB7A2BBB7BEB3B4EEBDA82E646F6378> Android 应用程序开发与典型案例 作者 : 华清远见 第 2 章 Android 开发环境搭建 本章简介 本章主要介绍在 Windows 环境下,Android 开发环境的搭建步骤及注意事项, 包括 JDK 和 Java 开发环境的安装和配置 Eclipse 的安装 Android SDK 和 ADT 的安装和配置等 ; 同时介绍了 Android 开发的基本步骤 2.1 Android 开发环境的安装与配置

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

C/C++ - 数组与指针

C/C++ - 数组与指针 C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 float candy [ 365]; char code [12]; int states [50]; 2 int array [6] = {1, 2, 4, 6, 8, 10}; 3 // day_mon1.c: # include # define MONTHS 12 int

More information

IO

IO 1 C/C++ C FILE* fscanf fgets fread fprintf fputs fwrite C++ ifstream ofstream >>

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

untitled

untitled Introduction to Programming ( 數 ) Lecture 3 Spring 2005 March 4, 2005 Lecture 2 Outline 數 料 If if 狀 if 2 (Standard Output, stdout): 料. ((Standard Input, stdin): 料. 類 數 數 數 說 printf 見 數 puts 串 數 putchar

More information

上海市教育考试院关于印发新修订的

上海市教育考试院关于印发新修订的 沪 教 考 院 社 考 2012 7 号 上 海 市 教 育 考 试 院 关 于 印 发 上 海 市 高 等 学 校 计 算 机 等 级 考 试 大 纲 (2012 年 修 订 ) 的 通 知 各 有 关 高 校 : 为 进 一 步 加 强 本 市 高 校 计 算 机 基 础 教 学 工 作, 推 进 学 校 更 加 科 学 合 理 地 设 置 计 算 机 基 础 课 程 及 安 排 教 学 内 容,

More information

ebook15-10

ebook15-10 1 0 10.1 U N I X V 7 4. 3 B S D S V R 3 P O S I X. 1 100 % 10.2 S I G S I G A B RT a b o r t S I G A L R M a l a r m V 7 1 5 S V R 4 4. 3 + B S D 31 < s i g n a l. h > 0 10. 9 k i l l 0 P O S I X. 1 D

More information

技 术 文 件

技  术  文  件 技术文件 技术文件名称 :IAlert 接口使用说明 技术文件编号 : 版 本 :V1.0 共页 ( 包括封面 ) 拟制 审核 会签 标准化 批准 中兴通讯股份有限公司 XX 软件模块详细设计说明 版本号 修改记录 文件编号 版本号 拟制人 / 修改人 拟制 / 修改日期 1 V1.0 胡曦 2005-08-12 新建 更改理由 主要更改内容 ( 写要点即可 ) 注 1: 每次更改归档文件 ( 指归档到事业部或公司档案室的文件

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

ebook15-4

ebook15-4 4 4.1 I / O I / s t a t s t a t ( ) U N I X 4.2 stat fstat lstat s t a t #include #include int stat(const char p a * t h n a m e, struct stat b * u f) ; int fstat(int f i l e

More information

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

38 47995529 威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 1059003070 號 39 47995534 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民 1 08414159 惠 鴻 眼 鏡 行 桃 園 市 中 壢 區 福 德 里 中 華 路 一 段 186 號 1 樓 30,000 獨 資 宋 耀 鴻 105/04/27 府 經 登 字 第 1059003866 號 2 17891110 承 元 冷 氣 空 調 工 程 行 桃 園 市 桃 園 區 中 德 里 國 際 路 1 段 98 巷 50 號 2 樓 之 4 200,000 獨 資 詹 安 平

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

Zookeeper使用ACL进行访问权限控制

Zookeeper使用ACL进行访问权限控制 Zookeeper 使用 ACL 进行访问权限控制 ZooKeeper 使用 ACL 来控制访问其 znode(zookeeper 的数据树的数据节点 ) ACL 的实现方式非常类似于 UNIX 文件的访问权限 : 它采用访问权限位允许 / 禁止对节点的各种操作以及能进行操作的范围 不同于 UNIX 权限的是,ZooKeeper 的节点不局限于用户 ( 文件的拥有者 ), 组和其他人 ( 其它 )

More information

谨将我们的工作献给 即将毕业离校的兄弟们 林晓鑫 刘德超 黄巍 周蓝珺 胡禹轩 王新喜 何春晓 崔剑 李浩 以及 潘海东即将出世的小 Baby! II

谨将我们的工作献给 即将毕业离校的兄弟们 林晓鑫 刘德超 黄巍 周蓝珺 胡禹轩 王新喜 何春晓 崔剑 李浩 以及 潘海东即将出世的小 Baby! II 谨将我们的工作献给 即将毕业离校的兄弟们 林晓鑫 刘德超 黄巍 周蓝珺 胡禹轩 王新喜 何春晓 崔剑 李浩 以及 潘海东即将出世的小 Baby! II 0 译者序 Linux System Prorgramming ( LSP) 的 文 工作 实 工业 IBM 理 的 工作的同 的 同 们 林晓鑫 王 崔 春 何春晓 李 的 SMS@lilacbbs.com 文献 的 王 刘文 王 刘德超 王新喜

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

Linux快速入门

Linux快速入门 黑色经典 系列之 嵌入式 Linux 应用程序开发详解 第 6 章文件 I/O 编程 本章目标 在搭建起嵌入式开发环境之后, 从本章开始, 读者将真正开始学习嵌入式 Linux 的应用开发 由于嵌入式 Linux 是经 Linux 裁减而来的, 它的系统调用及用户编程接口 API 与 Linux 基本是一致的, 因此, 在以后的章节中, 笔者将首先介绍 Linux 中相关内容的基本编程开发, 主要讲解与嵌入式

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

并行计算

并行计算 OpenMP OpenMP OpenMP OpenMP OpenMP MPI OpenMP OpenMP 2006-10-9 2 OpenMP ( ) OpenMP RedHat Linux Intel C OpenMP 2006-10-9 3 OpenMP OpenMP OpenMP OpenMP 2006-10-9 4 RedHat Linux Intel C root intel8.1 chmod

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

液晶之家论坛-

液晶之家论坛- 10 C Sep.22,1997 10 C [] 1997 6 3 page C Turbo C 2 C 4 10 13 21 32 40 46 55 1 C Turbo C C C / Turbo C Turbo C Turbo C PATH PATH=C:\TC;C:\DOS;... TC Turbo C PATH DOS TC Turbo C TC (Edit)(Compile)(Link)(Debug)

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc 2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.

More information

图 4.2 udpclient 项目解决方案 3. 客户机程序编码如下 : 程序 : udp 客户机程序 udpclient.cpp

图 4.2 udpclient 项目解决方案 3. 客户机程序编码如下 : 程序 : udp 客户机程序 udpclient.cpp 实验四 UDP 客户机和服务器设计 一 实验目的 1. 学习和理解 UDP 协议 ( 对照 TCP 协议 ) 2. 掌握 UDP 客户机与服务器程序的设计方法 3. 掌握 UDP 套接字创建方法, 掌握 sendto recvfrom 等函数用法 注意与 send recv 函数做对比性学习 二 实验内容 1. 完成发送和接收数据报的客户机设计 2. 完成接收和回送数据报的服务器设计 3.( 选做

More information

使用方法 :hadoop fs -chmod [-R] <MODE[,MODE]... OCTALMODE> URI [URI ] 改变文件的权限 使用 -R 将使改变在目录结构下递归进行 命令的使用者必须是文件的所有者或者超级用户 更多的信息请参见 HDFS 权限用户指南 chown 使用方法 :

使用方法 :hadoop fs -chmod [-R] <MODE[,MODE]... OCTALMODE> URI [URI ] 改变文件的权限 使用 -R 将使改变在目录结构下递归进行 命令的使用者必须是文件的所有者或者超级用户 更多的信息请参见 HDFS 权限用户指南 chown 使用方法 : Hadoop Shell 命令 FS Shell 调用文件系统 (FS)Shell 命令应使用 bin/hadoop fs 的形式 所有的 的 FS shell 命令使用 URI 路径作为参数 URI 格式是 scheme://authority/path 对 HDFS 文件系统,scheme 是 hdfs, 对本地文件系统,scheme 是 file 其中 scheme 和 authority

More information

Guava学习之CharSequenceReader

Guava学习之CharSequenceReader CharSequenceReader 类是以 CharSequence 的形式读取字符 CharSequenceReader 类继承自 Reader 类, 除了 remaining() hasremaining() 以及 checkopen() 函数之后, 其他的函数都是重写 Reader 类中的函数 CharSequenceReader 类声明没有用 public 关键字, 所以我们暂时还不能调用这个类

More information

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09:50 25 26 27 28 29 30 31 32 33 34 35 36 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一

考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09:50 25 26 27 28 29 30 31 32 33 34 35 36 二 技 企 管 一 胡 宗 兒 中 文 輸 入 四 技 企 四 甲 林 姿 瑄 中 文 輸 入 二 技 企 管 一 考 試 日 期 :2016/04/24 教 室 名 稱 :602 電 腦 教 室 考 試 時 間 :09:50 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 五 專 企 二 乙 胡 哲 維 中 文 輸 入 五 專 企 二 乙 周 林 昜 中 文 輸 入 五 專 企 二 乙 賴 昱 樺 中 文 輸 入 五 專 企 二 乙

More information

迅速在两个含有大量数据的文件中寻找相同的数据

迅速在两个含有大量数据的文件中寻找相同的数据 迅速在两个含有大量数据的文件中寻找相同的数据 求解问题如下 : 在本地磁盘里面有 file1 和 file2 两个文件, 每一个文件包含 500 万条随机整数 ( 可以重复 ), 最大不超过 2147483648 也就是一个 int 表示范围 要求写程序将两个文件中都含有的整数输出到一个新文件中 要求 : 1. 程序的运行时间不超过 5 秒钟 2. 没有内存泄漏 3. 代码规范, 能要考虑到出错情况

More information