使用FILE结构操作文本文件

简介: 使用FILE结构操作文本文件
任务描述

本关要求编写函数ext\fractDigit,该函数从已有的当前目录下的文件a.txt中读取并解析出其中的数值,并将结果写到当前目录下的文件b.txt中。

其中:文件a.txt中包含各种字符,但只有数字字符是有效的,提取其中的数字字符,将每3个数字组成一个整数,写到文件b.txt中,每个整数之间用一个空格分开。读取过程中,如果a.txt中最后剩下不到3个数字字符,则将剩下的1个或者2个数字字符组成一个整数。

例如:a.txt中的内容是1j3j5sd0msd454ss3msd563,则抽取出来写入文件b.txt的内容应该是135 45 435 63(第二个整数是由045三个数字组成,所以是45)。

相关知识(略)
编程要求

本关的编程任务是补全step1/fileTxt.c文件中ext\fractDigit函数,以实现使用FILE结构来操作文本文件的要求。具体要求如下:

  • 本关要求通过补全step1/fileTxt.c文件中ext\fractDigit函数来实现从已有的当前目录下的文件a.txt中读取并解析出其中的数值,并将结果写到当前目录下的文件b.txt中的要求。
  • 实际的测试样例参见下文。
测试说明

本关的测试文件是step1/main.c,其中将会调用你在step1/fileTxt.c文件中完成的ext\fractDigit函数来完成本关任务。step1/main.c的源代码如下所示:

#include 
#include 
//声明外部函数,函数ext\fractDigit在其它源文件中实现
extern void ext\fractDigit();
int main()
{
//准备文件a.txt的内容
FILE *fp = fopen("a.txt","w"); //打开文件a.txt用于写
char s[1000];
fgets(s, 999, stdin); //从键盘读取一行字符
fputs(s,fp); //将这一行字符写入文件a.txt中
fclose(fp); //关闭fp关联的文件a.txt
ext\fractDigit(); //调用函数,抽取数字写入文件b.txt中
FILE *f = fopen("b.txt","r"); //以读的方式打开文件b.txt
if(f==NULL) //打开失败则返回
return 0;
int n,k=0;
fscanf(f,"%d",&n); //从文件b.txt中读出一个整数到变量n中
while(!feof(f)) //如果文件没结束(读出的不是EOF)
{
k++;
printf("%d ",n); //输出该整数到屏幕
if(k%10==0) //每十组一换行
printf("\n");
fscanf(f,"%d",&n); //读取下一个整数
}
if(k%10!=10) //最后一行没有换行符则补上
printf("\n");
return 0;
}

平台会对你编写的代码进行测试: 测试输入: q12h44h67k854ksd923823sf83wd38457sd433ds, 预期输出: 124 467 854 923 823 833 845 743 3

测试输入: 1212121212343434343445454545450000005656565665dfsd455 预期输出: 121 212 121 234 343 434 344 545 454 545 0 0 565 656 566 545 5


开始你的任务吧,祝你成功!


相关文章
|
6月前
|
存储 5G C语言
JavaFile实现对文件txt内容的增删该查操作
JavaFile实现对文件txt内容的增删该查操作
50 0
|
6月前
|
C++
C++学习系列---读取文件名存入txt和从txt读取每行信息
C++学习系列---读取文件名存入txt和从txt读取每行信息
|
3月前
|
Java
File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
这篇文章介绍了Java中`File`类的常用方法操作,包括文件和目录路径名的抽象表示、构造方法、常用方法以及代码实例。文章通过具体的代码示例,展示了如何在磁盘上创建文件和目录、处理目录存在的情况、文件重命名、获取指定目录下的所有文件以及将数据写入文件等操作。每个代码实例都配有测试结果截图,帮助读者更好地理解和掌握`File`类的应用。
File常用的方法操作、在磁盘上创建File、获取指定目录下的所有文件、File文件的重命名、将数据写入File文件
|
5月前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
159 0
|
11月前
|
C#
C# (File方法)对文件的操作,字节写入和读取
C# (File方法)对文件的操作,字节写入和读取
ENVI_IDL: 文本文件的读取(主要是txt、csv文件)
ENVI_IDL: 文本文件的读取(主要是txt、csv文件)
439 0
|
存储
ENVI_IDL: 创建HDF5文件并写入数据(以将Geotiff文件写入HDF文件为例) + 详细解析
ENVI_IDL: 创建HDF5文件并写入数据(以将Geotiff文件写入HDF文件为例) + 详细解析
185 0
|
C语言
【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 逐行遍历文件文本数据 | 获取文件中的文本行 | 查询文本行数据 | 追加文件数据 | 使用占位符方式拼接字符串 )
258 0
|
大数据 C#
C# 读取大文件 (可以读取3GB大小的txt文件)
原文:C# 读取大文件 (可以读取3GB大小的txt文件) 在处理大数据时,有可能 会碰到 超过3GB大小的文件,如果通过 记事本 或 NotePad++去打开它,会报错,读不到任何文件。
4240 1
【文档操作】文本文件转excel文件
Excel文件是我们常用的一种文件,在工作中使用非常频繁。Excel中有许多强大工具,因此用Excel来处理文件会给我们带来很多便捷。但是有时候我们拿到了文件不是Excel文件,而且我们又想用Excel中的工具,这个时候我们就可以想办法把这个文件转换成Excel文件了。今天我们就来实现一下,需要注意我们只能把有规律的文件转换成Excel,而且今天的内容也不是普遍通用的。只提供一种思路。
163 0