/*
功能:读取文件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;
}
分享到:
相关推荐
标题提到的“文件反转、倒置”是一种常见的数据处理技术,通常用于对文件内容进行重新排列,例如将字节顺序颠倒,或者按照不同的步长进行读取。这种技术在CTF比赛中特别有用,因为很多隐藏的flag(标志)可能就藏在...
### 使用RandomAccessFile流将一个文本文件读出并写入到另一个文件中的知识点解析 在Java编程语言中,`RandomAccessFile`类提供了一种非常灵活的方式来读取和写入文件。它支持随机访问,意味着我们可以直接跳转到...
保存BMP文件的过程相对复杂,因为需要考虑到图像的倒置。由于BMP文件是自底向上存储的,最底部行的像素数据先于顶部行。所以,如果直接按照数组顺序写入,会导致图像上下颠倒。为解决这个问题,我们可以先将原始数据...
在`rotateAndSave`方法中,我们首先读取输入图片的元数据,并检查其中的Exif信息来确定旋转角度。然后,根据这个角度旋转图片。`getRotationAngle`方法需要实现从元数据中提取旋转角度的逻辑,这通常涉及到解析Exif...
在Java编程中,倒序读取文件是一种常见的需求,例如在日志分析或者处理大量文本数据时。本示例将详细介绍如何使用Java实现这一功能,同时提供了一个实用的`FileUtil`工具类作为参考。 首先,`FileUtil`类包含两个...
这通常涉及到对原始图像进行翻转并将其与原图结合,以创造出一个上下颠倒的“倒影”效果。下面将详细介绍如何通过Java来实现这个功能。 首先,我们需要使用Java的`java.awt.image.BufferedImage`类来加载和操作图片...
按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run->Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 ...
- **tee-从Stdin读取数据,并同时输出到Stdout和文件**:`tee`命令接收输入,并将其复制到标准输出和一个或多个文件中。这使得可以同时查看输出并保存结果。 #### 从shell眼中看世界 - **(字符)展开**:在shell中...
- `void WriteText(FILE *fp)`和`void ReadText(FILE *fr)`定义了两个操作文件的函数,分别是写入文本到文件和从文件中读取文本。 3. 数组操作: 文档中有数组的定义和操作,包括数组赋值和数组逆序等。 - `for(i=...
这可以通过在ATLAS Commands菜单中选择Structure和Mesh...,然后指定Type为Read from file,输入文件名“nmos.str”,最后写入Mesh语句到DECKBUILD文本窗口。 模型指定是仿真过程中的重要环节。在已有的NMOS结构...
- 数据可能是反序的,因为Windows BMP文件通常以“倒置”的方式存储,即最底部的行在文件中最早出现。 实现这个过程,我们可以创建一个Java类,包含解析和显示BMP文件的方法。首先,使用`java.io.RandomAccessFile...
功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...
功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...
功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...
在“打开”功能中,程序会使用File类来定位文件,然后用BufferedReader读取文件内容到内存;在“保存”功能中,程序会使用BufferedWriter将内存中的文本内容写入到指定文件。 4. **文本处理**: JTextArea组件用于...
源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以在001目录下找到), 拷贝到tc编译器目录下,运行tc.exe,打开编译器, 按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按...
功能:在指定目录下生成256个文件夹,每个文件夹内生成256个32K的文本文件,内容为“A”。 FileGenerate 20111121 1641.7z 功能: 猜想:对于“8.3格式文件”的文件名,(也许是出于向后兼容的目的),操作系统...
按【F3】键或者“File->Open”菜单命令,打开1.c文件, 按【Ctrl+F9】键,或者“Run->Run”菜单命令,编译运行该程序。 ◎ 光盘目录清单如下: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 ...