fread、fwrite 制作文件复制程序

通过Windows的CTRL+C、CTRL+V可以非常方便的复制文件,实际内部也一样是通过读写文件来完成的,通过Windows的命令行我们也可以使用copy.exe的相关命令来复制文件。本文就模仿copy.exe程序制作一个文件复制的程序。具体代码如下: #define _CRT_SECURE_NO_WARNI...

fread、fwrite 一次读写一块

fread、fwrite两个函数一般用于操作二进制文件,不适用处理文本文件,当然如果你非要用这两个函数来处理也没什么问题,只不过会相对麻烦一些,比如它不会给你读取出来的字符串末尾添加\0(fgets会在传入的buf末尾增加\0),也不会有什么结束标记判断。所以如果你如果用fread处理文本文件是非常苦恼的一件事情...

fputs 一次写一行数据

上一篇文章中介绍了fgets函数,可以一次获取一行数据到一个buffer中。对应也有一个函数是fputs,可以一次将一行数据写入到一个文件中,同样,在写入之前要以w方式打开被写入的文件,具体代码如下: #define _CRT_SECURE_NO_WARNINGS#include <stdio.h>...

fgets 一次读取一行数据

上一篇文章我们介绍过一次性读取一个字符,这样读取更加精确,但有不同的需求,比如需要一次读取一行或一段。本文将介绍如何一次读取一行内容,提供了两个函数,并分析了两个函数的区别。 示例文件: Open fileOpens the file whose name is specified in the paramet...

fgetc、fputc 一次读写一个字符

在C语言中,文件读写方式有很多种,比如一次读一个字符、一次读一行、一次读指定大小的内容等等方式,我们会依次介绍以上几种方式,本文开头,首先介绍一次读写一个字符的方法,其中需要使用到的函数为fgetc(读)、fputc(写)。期间的操作都需要文件句柄,我们也准备了一些文件做示例: 示例文件 File.txt: O...

以二进制形式打印一个数值

在编写代码的过程中,往往我们会用到一个数的二进制形式来对比分析,但C语言并没有什么库函数提供了这样的功能,虽然我们可以通过一些强大的编译器(如VisualStudio)在调试的过程中查看内存中存放的数据,但始终没有直观的打印出来方便的多。那么需求有了,如何实现呢?请看代码: #include <stdio...

二分查找(折半查找)法

二分查找的前提是数据一定要有序,否则一切皆为空谈。通过有序的一段数据使用二分查找较常规遍历查找算法速度要快一些。其中二分查找发有两种实现,一种为常规while循环,另外一种为递归。具体的实现步骤如下: 假设集合中数据是升序排列,将集合中间的元素同目标比较。若相等,则查找成功。否则利用中间位置将集合分成两个子集...

数组快速排序

快速排序是在数据源中抽取一份数据作为样本,与所有需要排列的数据进行对比,根据需要把比样本小的数据放置到数据源的左侧位置,比样本大的数据放置到数据源的右侧位置。以此来对数据进行排序。具体实现如下: // 抽取一个元素与所有元素对比,比样本小的置左,比样本大的置右int findPos(int ...

数组冒泡排序

排序算法中的最常见的冒泡排序,简单容易理解,文章中带有冒泡排序的基本示意图,可参考示意图再参考代码学习分析。 #include <stdio.h> int main(int argc, char* argv[]){int arr[] = {5, 4, 3, 2, 1};/&#x...

单向链表增删改查排序操作

在讨论链表这个概念之前,我觉得有必要说一下为什么会有链表?作为一个新手如果不明白这个问题上来就盲目的写链表的代码没有任何意义,就算你现在背下来了,早晚也会忘掉。 链表属于一种数据结构,数据结构目的就是用来以固定的结构储存数据,数组也是一种数据结构,只不过他在内存中表现的样式是连续的一段内存,中间不能插入其他数据...