<4D F736F F D20B5DA31D5C220C7B6C8EBCABDD3A6D3C3B3CCD0F2C9E8BCC6D7DBBACFBDCCB3CC2E646F63>
|
|
|
- 末 牧
- 6 years ago
- Views:
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 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 ;
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
附錄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
プログラムの設計と実現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
新版 明解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
新・明解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
新・解きながら学ぶ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
文件
CH10 文件 1 文件的概念 一 文件分类 二 文件的组织结构 : ASCII 码文件 ( 文本文件 ) 二进制文件 文件是二进制代码的, 则文件就是字节流 文件是 ASCII 码的, 则文件就是字符流, 也是字节流 1 如 : 对于整型变量 x, 其值为 32767 若以文本方式存放, 则共有 5 个字符, 内容为 : 00110011 00110010 00110111 00110110 00110111
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
chap12.ppt
第十二章 文件 C ( 前所讲 ) 程序 ( 可包含若干源程序文件 ) 文件 也属于. 目的 : 使程序操作中的数据得以长期保存 一 概述 OS 以文件为单位对数据进行存储管理 流与文件流 :C 提供的一个 I/O 统一接口, 与具体的被访问设备无关 把 I/O 工作抽象成从源到目地的流, 所有的 I/O 通过流来进行, 所有流都具有相同的行为 文件 : 指具体的实际设备 ( 一切具有 I/O 能力的外部设备
PowerPoint 演示文稿
第 13 章外存中数据的组织 文件 本章的基本内容是 : 概述 文件的打开与关闭 文件的读写操作 任务 13.1 统计入学成绩 ( 文件版 ) 问题 某大学的博士入学考试科目为外语和两门专业课, 对于每个考生, 输入各科考试成绩并计算总分 要求用文件实现 想法 已经录入的成绩信息应该用文件保存下来, 已经计算的总分也应该保存到文件中, 并已追加方式继续录入 算法 文件 student.txt 存放学生的成绩信息,
_汪_文前新ok[3.1].doc
普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向
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!=
没有幻灯片标题
位运算 C 语言既具有高级语言的特点, 又具有低级语言的功能 所谓位运算是指进行二进制位的运算 C 语言提供的位运算 : 说明 : 1 位运算符中除 ~ 以外, 均为二目 ( 元 ) 运算符, 即要求两侧各有一个运算量 2 运算量只能是整形或字符型的数据, 不能为实型数据 3 计算机中的数据是以补码的形式存储的, 因而进行位运算时, 是以补码进行运算 按位与 运算符 (&) 按位或 运算符 ( )
实际问题 : 1 职工信息管理系统 2 学生选课系统 3 飞机订票系统 4 图书信息管理系统 5 图象处理
实际问题 : 1 职工信息管理系统 2 学生选课系统 3 飞机订票系统 4 图书信息管理系统 5 图象处理 10.1 C 文件概述 文件 : 存储在外部介质上数据的集合, 是操作系统数据管理的单位使用数据文件的目的 文件分类 1 数据文件的改动不引起程序的改动 程序与数据分离 2 不同程序可以访问同一数据文件中的数据按文件的逻辑结构 : 数据共享 3 能长期保存程序运行的中间数据或结果数据 记录文件
从问题到程序——文件及输入输出
文件与输入输出 2011-06-01 文件概念 3 流和文件指针 C 语言中文件 IO 采用流概念 :IO 的对象是文件, 程序与文件交换信息需要与之建立联系 ( 流 ); 从文件输入时程序需要创建与文件关联的输入流 ; 程序向文件输出要创建输出流 ; 也可创建输入输出流 ; 建立联系 ( 创建流 ) 的操作称作打开文件, 文件打开后即可操作 ; 不再使用一个文件时可切断联系 ( 撤消对应的流 ),
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
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
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...
<4D F736F F D20B5DA33D5C220CAFDBEDDB5C4CAE4C8EBCAE4B3F62E646F63>
嵌入式 Linux C 语言程序 设计基础教程作者 : 华清远见 第 3 章数据的输入输出 本章目标 在上一章中, 读者了解了嵌入式 Linux C 语言的数据相关的知识, 包括数据类型 变量和常量等 本 章继续介绍 C 语言中与数据有关的知识, 数据的输入输出 通过本章的学习, 读者将会掌握如下内容 : 字符输出函数 putchar 格式化输出函数 printf 字符输入函数 getchar 格式化输入函数
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. 注意 "," 后面有一个空格,"." 结束,
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,,, ( ),,,,,
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",
帝国CMS下在PHP文件中调用数据库类执行SQL语句实例
帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)
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;
Microsoft Word - CPE考生使用手冊160524.docx
大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該
11. 下列关于文件的结论中正确的是 ( ) A. 对文件操作必须先关闭文件 B. 对文件操作必须先打开文件 C. 对文件的操作顺序没有统一规定 D. 以上三种答案全是错误的 12. 若以 a+ 方式打开一个已存在的文件, 则以下叙述正确的是 ( ) A. 文件打开时, 原有文件内容不被删除, 位置
单元 5 构造类型程序设计 文件 同步训练 一 单项选择题 1. 系统的标准输入文件是指 ( ) A. 键盘 B. 显示器 C.U 盘 D. 硬盘 2. 在进行文件操作时, 写文件的一般含义是 ( ) A. 将计算机内存在的信息存入磁盘 B. 将磁盘中的信息存入计算机内存 C. 将计算机 CPU 中的信息存入磁盘 D. 将磁盘中的信息存入计算机 CPU 3. 系统的标准输出文件是指 ( ) A. 键盘
Microsoft PowerPoint - C-Ch12.ppt
檔案的輸入 輸出 12-1 輸入 輸出的基礎 理解資料流 (stream) 的概念 在 C 語言中支援各種輸出入功能的概念, 就稱為資料流 執行附加格式的輸入 輸出 printf() 和 scanf() 是用來輸出 輸入的函數 必須先引入 stdio.h 檔案才能使用這些函數 這兩個函數會以固定的格式進行輸出入, 也可以使用各種不同的轉換規格 使用固定格式的輸出 輸入函數之範例 : int main(void)
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
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
( 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.
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];
[改訂新版]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
CC213
: (Ken-Yi Lee), E-mail: [email protected] 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
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) (
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,
C/C++ Basics
第 十章 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: [email protected] 265 課程 大綱 與作業系統或其他軟體溝通 (API) [P267] 檔案相關函式表 [P268] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite) 前置處理器
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
Microsoft Word - 2016职称安排修改 -6.22-于.docx
吉 人 社 办 字 2016 46 号 关 于 印 发 2016 年 吉 林 省 职 称 评 聘 工 作 的 安 排 意 见 的 通 知 各 市 ( 州 ) 长 白 山 管 委 会 县 ( 市 区 ) 人 力 资 源 和 社 会 保 障 局, 省 直 各 单 位 ( 部 门 ) 及 直 属 企 事 业 单 位, 驻 省 中 直 有 关 单 位, 各 评 聘 结 合 改 革 及 试 点 单 位, 省
C/C++ Programming
!281 第 十講 檔案輸入與輸出 講師 : 李根逸 (Ken-Yi Lee), E-mail: [email protected] !282 課程 大綱 與作業系統或其他軟體溝通 (API) [P.283] 檔案相關函式表 [P.284] 開啟與關閉檔案 (fopen, fclose) 讀寫純 文字檔 (fscanf, fprintf) 讀寫 二進位檔 (fread, fwrite)
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
Guava学习之Resources
Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于
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
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,
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,
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;
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.
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,
CC213
: (Ken-Yi Lee), E-mail: [email protected] 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] : ,
エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 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]);
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
《计算概论》课程 第十九讲 C 程序设计语言应用
计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 [email protected] 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout
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;
FY.DOC
高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主
<4D F736F F D20B5DA32D5C220416E64726F6964BFAAB7A2BBB7BEB3B4EEBDA82E646F6378>
Android 应用程序开发与典型案例 作者 : 华清远见 第 2 章 Android 开发环境搭建 本章简介 本章主要介绍在 Windows 环境下,Android 开发环境的搭建步骤及注意事项, 包括 JDK 和 Java 开发环境的安装和配置 Eclipse 的安装 Android SDK 和 ADT 的安装和配置等 ; 同时介绍了 Android 开发的基本步骤 2.1 Android 开发环境的安装与配置
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
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
IO
1 C/C++ C FILE* fscanf fgets fread fprintf fputs fwrite C++ ifstream ofstream >>
Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]
指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++
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
上海市教育考试院关于印发新修订的
沪 教 考 院 社 考 2012 7 号 上 海 市 教 育 考 试 院 关 于 印 发 上 海 市 高 等 学 校 计 算 机 等 级 考 试 大 纲 (2012 年 修 订 ) 的 通 知 各 有 关 高 校 : 为 进 一 步 加 强 本 市 高 校 计 算 机 基 础 教 学 工 作, 推 进 学 校 更 加 科 学 合 理 地 设 置 计 算 机 基 础 课 程 及 安 排 教 学 内 容,
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
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
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
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 獨 資 詹 安 平
《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;,
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
新版 明解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,
并行计算
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
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 [email protected] 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
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 [email protected] 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,
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.
考 試 日 期 :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 五 專 企 二 乙 胡 哲 維 中 文 輸 入 五 專 企 二 乙 周 林 昜 中 文 輸 入 五 專 企 二 乙 賴 昱 樺 中 文 輸 入 五 專 企 二 乙
迅速在两个含有大量数据的文件中寻找相同的数据
迅速在两个含有大量数据的文件中寻找相同的数据 求解问题如下 : 在本地磁盘里面有 file1 和 file2 两个文件, 每一个文件包含 500 万条随机整数 ( 可以重复 ), 最大不超过 2147483648 也就是一个 int 表示范围 要求写程序将两个文件中都含有的整数输出到一个新文件中 要求 : 1. 程序的运行时间不超过 5 秒钟 2. 没有内存泄漏 3. 代码规范, 能要考虑到出错情况
