您的位置:首页 > 编程语言 > C语言/C++

c语言读取有特殊格式的txt

2009-04-13 11:38 211 查看
  当朋友要我用c语言来读取txt文件之时,我第一反应就是这太容易了。即使看到了那特殊格式的txt我也觉得容易。不过,3个小时候,当我彻底搞定完了,我才意识到其一是我基础功不好,其二是事情虽小但考验的挺多。

  txt格式如下:
  
  要求如下:
<< 225 >> << 39 >> << 12 >> << 468 >> << 39 >>

程序要求:
  输入任意一个数字,统计出在txt中的出现次数,没有则为0。

  刚开始真的觉得挺容易的,想着自己大一的课程设计里都是从txt里读取数据的,可是我那时是用C++,里面的cin封装得很好了,并且也有istream等函数可以用。但是这次是c语言,并且数字都给括号给包装了,同时也是每行都有不确定的几个数字,可以是5个,也可以是6个。总之,搞学问一步步来吧,最终还是解决了这个问题,很愧疚的竟然花了3个小时。



#include<stdio.h>
main()
{
	int i=0,j=0,count=0;
	int a[100],searchnum=0;
	char ch;
	FILE *fp;
	FILE* in;
	FILE* out;
	in = fopen("new_demo.txt", "rb");
	out = fopen("temp.txt", "wb");
	//把原始資料中的符號<與符號>過濾掉,并重新保存為資料temp.txt。
	while ((ch = getc(in)) != EOF)
	{
		if(ch != '<' && ch != '>')
			putc(ch, out);
	}
	fclose(in);
	fclose(out);
		////輸入需要統計的數字,如225等
	printf("please input the number search:");
	scanf("%d",&searchnum);
	if((fp=fopen("temp.txt","rt"))==NULL)
	{
		printf("error!/n");
		getch();
		exit(1);
	}
	while(!feof(fp))
	{
		fscanf(fp,"%d",&a[i]);
		i++;
	}
	for(j=0;j<i;j++)
	{
		if(a[j] == searchnum)
			count++;
	}
		//printf("%d/n",a[j]);
	fclose(fp);
	printf("the count is:%d",count);
	scanf("%d",&i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: