c语言读文件空格间隔,c语言文件流实现按单个词读取(以空格、分号等作间隔)...

c语言文件流实现按词读取(以空格、分号等作间隔)

1.基本描述

在之前的作业中,认真编写代码,从中发现不少知识积累上的欠缺。编程中使用到的c语言文件读取,要求是按照获取到一个完整的词,并对其进行处理。

写有java或c语言源程序的.txt文件,词组与词组之间,常有 ‘.’ 、( 、) 、{ 、} 、【、 】、空格等符号间隔开来,可以利用这些符号当做截断字符串的判断条件

2.代码实现

使用C语言编写,并使用fgetc函数,每个字符读入并进行判断

下面是部分代码:

void FileRead(char filename[]){

FILE* fp;//必须要定义的指针

int i=0,counter=0;

int ch;

char str[14];//用于.txt文件按词读取,即暂存器

fp = fopen(filename, "r");//打开文件夹

do{

//读出词

do

{

ch=fgetc(fp);

if((ch>=97&&ch<=122)||(ch>=65&&ch<=90))//只有ch为字母时才录入

{

str[counter]=(char)ch;

counter++;

} }while(ch!='.'&&ch!='{'&&ch!='}'&&ch!='('&&ch!=')'&&ch!='['&&ch!=']'&&ch!=32&&ch!=59&&ch!=-1); //上为判定是否录入一完整词的判定结束条件

printf("str:%s\n",str);

/*

这中间可以编写一些关于处理字符串的操作

*/

//清空暂存的数组

for(i=0;i<14;j++)

str[i]=0;

counter=0;

}while(ch!=EOF);//当文件读完时结束

}

void main()

{

char filename1[12];

printf("请输入该文件名");

scanf("%s",&filename1);

FileRead(filename1);

}

以上就是实现的代码,可能有些粗糙,但基本使用上无大问题,下图为上机运行得结果

b30b6b198315a7d24015a25c580d3dd2.png

要注意接收fgetc获得的字符的ch需定义为int型,具体原因有时间再开一篇,网上也可以查到相关的资料与原因。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值