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);


}

以上就是实现的代码,可能有些粗糙,但基本使用上无大问题,下图为上机运行得结果
c语言文件流实现按单个词读取(以空格、分号等作间隔)_第1张图片
要注意接收fgetc获得的字符的ch需定义为int型,具体原因有时间再开一篇,网上也可以查到相关的资料与原因。

你可能感兴趣的:(c语言文件流实现按单个词读取(以空格、分号等作间隔))