`

读取file1的内容以行为单位倒置输出到file2中

阅读更多
/*
	功能:读取文件file1.txt的内容比如:
	12
	34
	56
	输出到file2.txt
	56
	34
	12
	备注:本算法只针对这样数据行的文件内容有效。
	日期:2009.12.30
	作者:DC
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

int main(int argc, char **argv)
{
	FILE *fp1,*fp2; //两个文件指针
	int max = 10; //首次分配的int型的空间大小的个数
	int *a; //分配空间首地址赋给a
	int *b; //在realloc的时候,b接过指针,方便赋给a
	
	/*分配空间函数malloc在头文件stdlib.h中*/
	a = (int *)malloc(max * sizeof(int));
	if (a == NULL)
	{
		printf("overflow while malloc\n");
		exit(-1);
	}
	
	/*文件标准IO函数在stdio.h中*/
	fp1 = fopen("file1.txt", "r");
	if (fp1 == NULL)
	{
		printf("open file1 error:%s\n", strerror(errno));
		exit(-1);
	}
	
	fp2 = fopen("file2.txt", "w");
	if (fp2 == NULL)
	{
		printf("open file2 error:%s\n", strerror(errno));
		exit(-1);
	}
	
	/*fscanf对本算法实现相当重要,因为文件中的格式确定,用这个函数很方便*/
	int i=0, j=0;
	while(fscanf(fp1, "%d", &a[i]) != EOF)
	{
		i++;j++;
		if(i >= max) //当空间不够用时,用realloc函数实现
		{
			max = 2 * max;
			b = (int *) realloc(a, max * sizeof(int));
			if (b == NULL)
			{
				printf("overflow while realloc\n");
				exit(-1);
			}
			a = b;
		}
	}
	
	/*注意--j,因为最后一个读出来的是结束符'\0',
	另外注意a[0]也是有效数据。*/
	for (; --j>=0;) 
	{
		fprintf(fp2, "%d\n", a[j]);
	}
	
	fclose(fp1);
	fclose(fp2);

	return 0;
}
0
0
分享到:
评论

相关推荐

    对文件反转、倒置的工具,解决CTF和生活中的文件处理问题

    标题提到的“文件反转、倒置”是一种常见的数据处理技术,通常用于对文件内容进行重新排列,例如将字节顺序颠倒,或者按照不同的步长进行读取。这种技术在CTF比赛中特别有用,因为很多隐藏的flag(标志)可能就藏在...

    使用RandomAccessFile流将一个文本文件读出,并导致写入到另一个文件当中。

    ### 使用RandomAccessFile流将一个文本文件读出并写入到另一个文件中的知识点解析 在Java编程语言中,`RandomAccessFile`类提供了一种非常灵活的方式来读取和写入文件。它支持随机访问,意味着我们可以直接跳转到...

    java 图片压缩 iphone拍照上传旋转问题处理压缩工具类

    在`rotateAndSave`方法中,我们首先读取输入图片的元数据,并检查其中的Exif信息来确定旋转角度。然后,根据这个角度旋转图片。`getRotationAngle`方法需要实现从元数据中提取旋转角度的逻辑,这通常涉及到解析Exif...

    bmp位图文件的读取与保存

    保存BMP文件的过程相对复杂,因为需要考虑到图像的倒置。由于BMP文件是自底向上存储的,最底部行的像素数据先于顶部行。所以,如果直接按照数组顺序写入,会导致图像上下颠倒。为解决这个问题,我们可以先将原始数据...

    java实现倒序读取文件功能示例分享

    在Java编程中,倒序读取文件是一种常见的需求,例如在日志分析或者处理大量文本数据时。本示例将详细介绍如何使用Java实现这一功能,同时提供了一个实用的`FileUtil`工具类作为参考。 首先,`FileUtil`类包含两个...

    Java图片倒影效果实例源码.zip

    这通常涉及到对原始图像进行翻转并将其与原图结合,以创造出一个上下颠倒的“倒影”效果。下面将详细介绍如何通过Java来实现这个功能。 首先,我们需要使用Java的`java.awt.image.BufferedImage`类来加载和操作图片...

    C语言精粹(第2版)随书关盘

    按【F3】键或者“File-&gt;Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run-&gt;Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 ...

    快乐的linux命令行

    - **tee-从Stdin读取数据,并同时输出到Stdout和文件**:`tee`命令接收输入,并将其复制到标准输出和一个或多个文件中。这使得可以同时查看输出并保存结果。 #### 从shell眼中看世界 - **(字符)展开**:在shell中...

    历年全国计算机等级考试_二级C上机考试题库及答案分析.pdf

    - `void WriteText(FILE *fp)`和`void ReadText(FILE *fr)`定义了两个操作文件的函数,分别是写入文本到文件和从文件中读取文本。 3. 数组操作: 文档中有数组的定义和操作,包括数组赋值和数组逆序等。 - `for(i=...

    silvaco 器件模拟

    这可以通过在ATLAS Commands菜单中选择Structure和Mesh...,然后指定Type为Read from file,输入文件名“nmos.str”,最后写入Mesh语句到DECKBUILD文本窗口。 模型指定是仿真过程中的重要环节。在已有的NMOS结构...

    java关于BMP位图文件解析的分析与实现[源码][附图]

    - 数据可能是反序的,因为Windows BMP文件通常以“倒置”的方式存储,即最底部的行在文件中最早出现。 实现这个过程,我们可以创建一个Java类,包含解析和显示BMP文件的方法。首先,使用`java.io.RandomAccessFile...

    C语言源代码格式化 完工 小文版本 V1.10 20120831 0955.zip

    功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...

    C语言源代码格式化 完工 V1.08 20120801 1627.7z

    功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...

    C语言源代码格式化 完工 V1.09 20120821 2116.7z

    功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...

    用Java做的记事本程序

    在“打开”功能中,程序会使用File类来定位文件,然后用BufferedReader读取文件内容到内存;在“保存”功能中,程序会使用BufferedWriter将内存中的文本内容写入到指定文件。 4. **文本处理**: JTextArea组件用于...

    220个C源代码 初学C语言必备

    源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以在001目录下找到), 拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File-&gt;Open”菜单命令,打开1.c文件, 按...

    C语言源代码格式化 完工 V1.04 20120226 1946.7z

    功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...

    C 语言实例解析精粹(第二版)(书+盘)

    按【F3】键或者“File-&gt;Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run-&gt;Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 ...

Global site tag (gtag.js) - Google Analytics