最近看到一个问题感觉很有意思: “如何在不申请临时变量的情况下交换两个数的值?”...swap(int *p, int *q) { *a = *a ^ *b; *b = *b ^ *a; *a = *a ^ *b; } 提示:异或运算符 ^ 也称 XOR 运算符,它的规则是若参加运算的两个二进位同号...; } 方法三# void swap(int *p, int *q) { *a = *a + *b - (*b = *a); } C/C++ 中 ( A = B ) 返回得到是赋值号( = )的左面的值...计算实例: a = 3; b = 4; a = 3 ^ 4 = 7; b = 4 ^ 7 = 3; a = 7 ^ 3 = 4; -> a = 4; -> b = 3; 参考文献# 不用临时变量交换两个数的值...C/C++__基础类型的(=)赋值表达式的返回值 注:本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
在 PHP 中如果要交换两个变量的值,一般使用中间临时变量来处理,比如: $tmp = $x; $x = $y; $y = $tmp; 比如上面交换临时变量 x 和 y 的值,就要用到临时变量 其实可以是用...PHP 函数 list 来处理: list($x,$y) = array($y, $x); 这样一行代码就简洁得多了,如果使用 PHP 7.1 及以上的版本,还可以使用短数组语法([]): [$x,
题目: 有两个磁盘文件A.txt和B.txt,各存放一行字符,要求把这两个文件中的信息合并(按字母顺序排列),并输出到一个新文件C中。...fp1_str + fp2_str) fp_str.sort() fp_str = ''.join(fp_str) fp.write(fp_str) fp.close() 啊啊啊这,不要问我文档也要我的,
数据文件 ⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。...本篇我们讨论的是数据文件 在大多数处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到显⽰器上。.../data/xxx,表示的就是下下一级路径 文件打开和关闭 流和标准流 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了⽅便程序员对各种设备进...其实就是比putchar和getchar的对象从标准输入输出流多了个文件的输入输出流,其他例如返回值类型等都是一样的,就是参数多了个流 读取或写入成功返回字符ASCII码,否则返回EOF int main..., pf); //不换行就在一行上 //3.
在学习中,我们所有输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显⽰到 显⽰器上。...三、文件的打开和关闭 1.流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出 操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流...stdin - 标准输⼊流 用于读取普通输入的流,在⼤多数的环境中从键盘输⼊,scanf函数就是从标准输⼊流中读取数据。...p = NULL; } return 0; } 四、⽂件的顺序读写 上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀ 般指适⽤于标准输出流和其他输出流(...fread (buffer,1,26,pFile); fclose (pFile); buffer[26]='\0'; printf(buffer); return 0; } rewind 函数不返回任何值
想实现下图所示的效果: 代码: <!
2.2 数据⽂件 ⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。 本章讨论的是数据⽂件。...其实有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使⽤,这⾥处理的就是磁盘上⽂件。...⽂件的打开和关闭 4.1 流和标准流 4.1.1 流 我们的程序需要读取和输出文本内容,就需要到流,我们从键盘上输入一个内容,首先要到流,流再传给程序,从而程可以输出我们的值。...stdout标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。 stderr标准错误流⼤多数环境中输出到显⽰器界⾯。...然后剩下三个两个字符的 第一种是rb+,为了读和写打开⼀个⼆进制⽂件,如果指定⽂件不存在:出错 第一种是wb+,为了读和写,新建⼀个新的⼆进制⽂件,如果指定⽂件不存在:建⽴⼀个新的⽂件 第一种是ab+,
数据文件:⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。...有时候我们会把信息输出到磁盘上,当需要的时候再从磁盘上把数据读取到内存中使⽤,这⾥处理的就是磁盘上⽂件。...,如果不加转换的输出到外存的⽂件中,就是⼆进制⽂件。...• stdout 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。 • stderr 标准错误流,⼤多数环境中输出到显⽰器界⾯。...⽂本⽂件读取是否结束,判断返回值是否为 EOF ( fgetc ),或者 NULL ( fgets ) 例如: • fgetc 判断是否为 EOF • fgets 判断返回值是否为 NULL .
1.根据数据的组织形式,数据⽂件被称为⽂本⽂件或者⼆进制⽂件。数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存的⽂件中,就是⼆进制⽂件。...1.流: 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流 想象成流淌着字符的河...第二个:stdout - 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出 流中。...fscanf 格式化输⼊函数 所有输⼊流 fprintf 格式化输出函数 所有输出流 fread ⼆进制输⼊ ⽂件 fwrite ⼆进制输出 ⽂件 这里简单介绍一两个,其他可以在https...⽂件读取结束的判定 1.在⽂件读取过程中,不能⽤feof函数的返回值直接来判断⽂件的是否结束 ,(文件结束有两种情况,一种是可能遇到文件末尾(用feof),另外是可能读取时发生错误(用ferror)这两个函数是通过流的标记值做出判断的
2 Tomcat 日志配置 2.1 访问日志的配置 默认 tomcat 不记录访问日志,如下方法可以使 tomcat 记录访问日志 编辑 ${catalina}/conf/server.xml...该项值可以为: common 与 combined ,这两个 预 先 设 置好的 格式对应的日志输出内容如下: common 的值: %h %l %u %t %r %s %b combined 的值:...时输 出的 错误 信息不足的 问题 ,使用 commons-logging 和 log4j 搭配 输 出 详 尽的日志信 息 。...出内容 1 、 log4j.rootCategory=INFO, stdout , R 此句 为 将等 级为 INFO 的日志信息 输 出到 stdout 和 R 这 两个目的地。...INFO , WARN , ERROR , FATAL Ø %r 输 出自 应 用启 动 到 输 出 该 log 信息耗 费 的毫秒数 Ø %c 输 出所属的 类 目,通常就是所在 类 的全名 Ø
.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows环境后缀为.exe) 2.数据文件 文件的内容不⼀定是程序,而是程序运行时读写的数据,比如程序运⾏需要从中读取数据的...⽂件,或者输出内容的⽂件 二、数据文件 本文着重讨论的是数据文件,在以前我们学的知识中,所处理的数据的输⼊都是以键盘输⼊数据,用显示器输出 但是我们之前的程序结果输出到显示器后,结束程序,...三、文件的打开和关闭 1.流和标准流 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出操作各不相同,为了⽅便程序员对各种设备进行方便的操作,我们抽象出了流的概念...⽰器界⾯,printf函数就是将信息输出到标准输出流中 stderr - 标准错误流,⼤多数环境中输出到显⽰器界⾯ 这是默认打开的三个标准流,我们使⽤scanf、printf等函数就可以直接进⾏输...7.fwrite函数 我们要讲的最后两个函数fread和fwrite与上面讲的函数不同,上面的函数都是对文件写入或读取我们看得懂的文本信息,而这两个函数是对文件写入或读取二进制信息 也就是对二进制文件进行操作
2、数据文件 ⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。...在以前各章所处理数据的输⼊输出都是以终端为对象的,即从终端的键盘输⼊数据,运⾏结果显示到显示器上。...• stdout-标准输出流,大多数的环境中输出至显示器界面,printf 函数就是将信息输出到标准输出流中。 • stderr-标准错误流,大多数环境中输出到显示器界面。...被错误使用的 feof 牢记:在⽂件读取过程中,不能⽤feof函数的返回值直接来判断⽂件的是否结束。...• fgets 判断返回值是否为 NULL . 7.1.2. ⼆进制⽂件的读取结束判断,判断返回值是否⼩于实际要读的个数。
背景 大量项目在使用logback记日志,有部分项目使用日志混乱,格式不统一,多数人搞不懂配置文件,导致配置错误,现在需要开发一套统一的、少配置的日志组件,使用方便 设计思路 尽量采用0配置,无logback.xml...日志格式统一,方便后续日志分析系统 只有两个日志级别,一个是正常日志,一个是异常日志 提供log4j、jcl、logback、commons-log等桥接方案及版本兼容方案 提子线程、json格式化输出...输出路径 约定固定将日志输出到,相对路径log/xxx.yyyy-MM-dd-HH.log,其中xxx为logger的name 日志格式 格式固定: MMddHHmmss.SSS||id||【交易名★子步骤...ThrowableProxyConverter和MessageConverter来实现对日志的拦截,并修改为想要的格式,其中使用的例如id等放到本地变量内,核心是对MDC的使用 基础logger 所有日志都默认输出到这里...包名,例如:com.test 必输参数 如果name未设置时,name默认为包名最后一个.后面的字符 name 名字,决定日志文件的名字 非必输 path 日志路径 非必输 additivity 是否输出到
程序文件 目标文件 可执行程序 数据⽂件 ⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。 本篇讨论的是数据⽂件。...,因为存放的是二进制 我们可以用vs的二进制编辑器打开查看 这个是小端存放的,所以是倒过来的 文件的打开和关闭 流和标准流、 流 我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输...stdout -- 标准输出流,⼤多数的环境中输出⾄显⽰器界⾯,printf函数就是将信息输出到标准输出流中。 stderr -- 标准错误流,⼤多数环境中输出到显⽰器界⾯。...顺序读写是一行一行的读写,随机读写是想读写那个就读写那个 fseek fseek根据⽂件指针的位置和偏移量来定位⽂件指针(文件内容的光标)。...fgets 判断返回值是否为 NULL . ⼆进制⽂件的读取结束判断,判断返回值是否⼩于实际要读的个数。 例如: fread判断返回值是否⼩于实际要读的个数。
一、printf 1.1基本用法 将参数文本输出到屏幕。printf中的f代表format(格式化),表示可以定制文本的输出格式。...为了让光标移到下一行的开头,可以在输出文本的结尾,添加⼀个换行符 \n printf("Hello World\n"); 如果文本内部有需要换行,也是可以添加\n的 printf("Hello...所以,输出字符串的头部有两个 空格。...最小宽度和小数位数这两个限定值,都可以用* 代替,通过 printf() 的参数传入 #include int main() { printf("%*....%c 不忽略空白字符,总是返回当前第⼀个字符,无论该字符是否为空格。
而能够做到这件事的就是:文件操作。 一、文件的打开和关闭 1.流 程序的数据需要输出到外部设备,也需要从外部设备输入。对于不同设备,输入输出方式各有不同。...数据在内存中以二进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件。 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。...如有整数10000,如果以ASCII码的形式输出到磁盘,则磁盘中占用5个字节(每个字符⼀个字节),而二进制形式输出,则在磁盘上只占4个字节。...函数 所有输⼊流 fprintf 格式化输出函数 所有输出流 fread ⼆进制输⼊ ⽂件输⼊流 fwrite ⼆进制输出 ⽂件输出流 接下来我们尝试使用一下fscanf和fprintf函数: 这两个函数的第一个参数是一个文件指针...2.对于二进制文件,我们使用fread函数判断其返回值:是否小于实际要读的个数。如果小于,则说明读取结束。 对于以上两种情况,文件读取结束时,我们可以继续判断文件读取结束的原因。
⽂件的内容不⼀定是程序,⽽是程序运⾏时读写的数据,⽐如程序运⾏需要从中读取数据的⽂件,或者输出内容的⽂件。 1.2文件名 ⼀个⽂件要有⼀个唯⼀的⽂件标识,以便⽤⼾识别和引⽤。...我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出 操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流 想象成流淌着字符的河。...fscanf和fprintf 将这两个函数之间类型和scanf以及printf进行比较:可以发现都是多了FILE*stream,多了一个流,需要通过流来实现前两个函数的作用 fread和fwrite fread... • fgets 判断返回值是否为 NULL 2. ⼆进制⽂件的读取结束判断,判断返回值是否⼩于实际要读的个数。...例如: • fread判断返回值是否⼩于实际要读的个数。
不久之后,辅导班老师就指点问候我了,您家的两个孩子呢?这个气的我呀,立马回家看了看日志,两个孩子除了 0 和 1,其他数字都输齐了。...由此可见,这样直接使用 int 常量无法限定用户的输入,你让它输 0 或 1,它偏偏输个 45678。从代码可读性来说,参数是个 int 值,并不是那么直观的就可以看出来应该输入什么。...两个熊孩子终于可以愉快的去上课了。 枚举是 Java 1.5 中新增的引用类型,指由一组固定的常量组成合法值的类型,其实上面的例子并不那么适合枚举,例如一年四季,一周七天这样的,更加适合枚举。...但是枚举对序列化作了一定的限制,在序列化的时候仅仅是将枚举对象的 name 属性输出到结果中,反序列化的时候则是通过 Enum.valueOf() 方法来查找枚举对象。...之前有说过,知其然不知其所以然的时候,javap 是你的好帮手。这次我们不 javap 了,毕竟字节码可读性不是那么的好。
数据在内存中以⼆进制的形式存储,如果不加转换的输出到外存的⽂件中,就是⼆进制⽂件。 如果要求在外存上以ASCII码的形式存储,则需要在存储前转换。...fputc 字符输出函数 所有输出流 fgets ⽂本⾏输⼊函数 所有输⼊流 fputs ⽂本⾏输出函数 所有输出流 fscanf 格式化输⼊函数 所有输⼊流 fprintf 格式化输出函数 所有输出流...返回值:成功读取一行,返回 str;遇到文件结束或错误,返回 NULL。 示例: FILE *file = fopen("example.txt", "r"); if (file !...\n", "World"); fprintf:将格式化数据输出到指定的文件流。...输出:输出的错误信息包括自定义前缀和 errno 对应的系统错误描述。通常输出到标准错误流(stderr)。
文件的打开和关闭 1.1 流和标准流 1.1.1流 我们程序的数据需要输出到各种外部设备, 也需要从外部设备获取数据, 不同的外部设备的输入输出操作各不相同, 为了方便程序员对各种外部设备进行方便的操作...默认打开了3个流: stdin: 标准输入流, 在大多数的环境中从键盘输入, scanf函数就是从标准输入流中读取数据 stdout: 标准输出流, 大多数的环境中输出到显示器界面, printf函数就是将信息输出到标准输出流中...顺序读写 上⾯说的适⽤于所有输⼊流⼀般指适⽤于标准输⼊流和其他输⼊流(如⽂件输⼊流);所有输出流⼀ 般指适⽤于标准输出流和其他输出流(如⽂件输出流)。 3....如果函数执行成功,则返回0;如果执行失败,则返回非0值,通常是-1。在实际使用中,我们可以根据fseek函数的返回值来判断文件指针位置是否成功移动。...注意,rewind函数不返回任何值,因为它是一个void函数。
领取专属 10元无门槛券
手把手带您无忧上云