使用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


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


相关文章
|
27天前
|
存储 5G C语言
JavaFile实现对文件txt内容的增删该查操作
JavaFile实现对文件txt内容的增删该查操作
18 0
|
1月前
|
C++
C++学习系列---读取文件名存入txt和从txt读取每行信息
C++学习系列---读取文件名存入txt和从txt读取每行信息
|
8月前
6.4.4 观察文件类型:file
6.4.4 观察文件类型:file
29 0
|
4月前
|
C#
C# (File方法)对文件的操作,字节写入和读取
C# (File方法)对文件的操作,字节写入和读取
|
8月前
|
Python
Python 文件操作(创建、读取、追加、图片视频读取)
Python 文件操作(创建、读取、追加、图片视频读取)
89 0
|
9月前
ENVI_IDL: 文本文件的读取(主要是txt、csv文件)
ENVI_IDL: 文本文件的读取(主要是txt、csv文件)
277 0
|
9月前
|
存储
ENVI_IDL: 创建HDF5文件并写入数据(以将Geotiff文件写入HDF文件为例) + 详细解析
ENVI_IDL: 创建HDF5文件并写入数据(以将Geotiff文件写入HDF文件为例) + 详细解析
115 0
|
Java
编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内
编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内
230 0
编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内
|
大数据 C#
C# 读取大文件 (可以读取3GB大小的txt文件)
原文:C# 读取大文件 (可以读取3GB大小的txt文件) 在处理大数据时,有可能 会碰到 超过3GB大小的文件,如果通过 记事本 或 NotePad++去打开它,会报错,读不到任何文件。
4120 1
读取文件内容: 1.通过open函数获取文件对象 2.执行read函数 需要指定读取的字符
读取文件内容: 1.通过open函数获取文件对象 2.执行read函数 需要指定读取的字符