c语言文件问题,要求数据直接从文件输入(文件格式####.in),结果直接输出到文件(文件格式####.out)

输入包含字母和数字,要求统计每个字符的出现次数,并按要求格式输出,30分。例如:
输入:AsdaAffid333778
输出:a:3
d:2
f:2
i:1
s:1
3:3
7:2
8:1

这个太过于简单了  哈哈

#include <stdio.h>

int main()
{
char c[127] = {0};
FILE *fp = NULL;
char ch = NULL,tmp[10]={0};
int i=0;
fp =fopen("data.in","r");

while( (ch= fgetc(fp))!=EOF)
{
if (ch>='a' && ch<='z' )
{
c[ch]++;
}
else if (ch>='A' && ch<='Z' )
{
c[ch+32]++;
}
else if (ch>='0' && ch<='9' )
{
c[ch]++;
}
}
fclose(fp);
fp = fopen("data.out","w");
for (i=97;i<97+26;i++)
{
if (c[i])
{
sprintf(tmp,"%c:%d\n",i,c[i]);
fputs(tmp,fp);
}
}
for (i=48;i<48+9;i++)
{
if (c[i])
{
sprintf(tmp,"%c:%d\n",i,c[i]);
fputs(tmp,fp);
}
}
fclose(fp);
return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-03-20
#include<stdio.h>
#include<stdlib.h>
void main() { FILE *fp; int a[26+10],i,c;
  for ( i=0;i<36;i++ ) a[i]=0;
  if ( fopen("test.in","r") ) {
    while ( 1 ) {
      c=fgetc(fp); if ( c==EOF ) break;
      if ( c>='a' && c<='z' ) a[c-'a']++;
      else if ( c>='A' && c<='Z' ) a[c-'A']++;
      else if ( c>='0' && c<='9' ) a[c-'0'+26]++;
    }
    fclose(fp);
    if ( fp=fopen("test.out","w+") ) {
      for ( i=0;i<26;i++ ) if ( a[i]!=0 ) fprintf(fp,"%c:%d\n",i+'a',a[i]);
      for ( i=0;i<10;i++ ) if ( a[i+26]!=0 ) fprintf(fp,"%d:%d\n",i,a[i+26]);        
      fclose(fp);
    } else printf("无法建立文件test.out。\n");
  } else printf("无法打开文件test.in读取。\n");
}

本回答被提问者和网友采纳

怎么导出电脑里的c语言文件在电脑上想导出文件怎么操作
1,两种文件存取方式(输入,输出方式)顺序存取直接存取2,数据的两种存放形式文本文件二进制文件 13.2文件指针定义文件类型指针变量的一般形式:FILE *指针变量名;例如:FILE *fp1,*fp2;13.3打开文件在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为:fopen(文件名,文件使用方式);此函数返回一个指向FILE类型...

如何实现c语言编程中将一个文件内容按行输出到另一文件
用savein saveout试试可以么

c语言,有高手教我怎么导出运行结果吗??导出到指定文件。
1,两种文件存取方式(输入,输出方式)顺序存取直接存取2,数据的两种存放形式文本文件二进制文件 13.2文件指针定义文件类型指针变量的一般形式:FILE *指针变量名;例如:FILE *fp1,*fp2;13.3打开文件在使用文件之前,需打开文件.在C里使用fopen函数打开文件.格式为:fopen(文件名,文件使用方式);此函数返回一个指向FILE类型...

C语言屏幕输出的内容如何保存到文件中
C语言中用流替换函数freopen可以从文件中读取数据或将数据输出到文件中。需要引用库"stdio.h",即 include<stdio.h>freopen的声明如下:FILE *freopen(const char * restrict filename, const char * restrict mode, FILE * restrict stream);形参说明:filename:需要重定向到的文件名或文件路径。mode...

在c语言编程中如何实现程序对文本文件中字符串进行替换及生成新的文本...
char c,ch[150];cout<<"请输入文件名:"<<endl;cin>>ch;system("cls");ifstream infile;infile.open(ch,ios::in);if(!infile){ cerr<<"Open file error!"<<endl;system("pause");system("cls");MainMenu();} while(infile.get(c)){ cout<<c;i++;if(i>=1000&&c=='\\n'||i>...

用C语言读取ASCII文件的数据并输出到另一个文件
1的一行 试试我这个吧 好用的话给个采纳 不好用就算啦 include <stdio.h> include <string.h> define in_file "in.txt"define out_file "out.txt"int main(){ FILE * in, *out;double k[5];char buf[1024], *s;in = fopen(in_file, "r");if(in == NULL){ printf("can not...

C\/C++编写一个使用系统调用从一个文件中读入数据并复制到另一个文件...
文件复制,就调 copy 命令就可以了。system ("copy abc.dat def.dat"); 就把 abc.dat 复制到 def.dat 了。如果文件名带空白,可以加 \\" \\" 括起来:system ("copy \\"abc A.dat\\" \\"def B.dat\\" ");文件名带路径,用双斜杠: \\"D:\\\\dir\\\\abc A.dat\\"...

c,noip,文件,读入输出
{ freopen("in.txt","r",stdin);\/\/从in.txt中读取数据 freopen("out.txt","w",stdout);\/\/输出到out.txt文件 } 方法二:速度比第一种快 main(){ FILE *in;FILE *out;in=fopen("a.txt","r"); \/\/指针指向输入文件 out=fopen("b.txt","w");\/\/输出文件格式 fscanf(in,"%d",&...

...怎么改out.dat文件 直接在文件里面给出答案
3、找到in.dat文件,按照试题要求在里面修改内容(也可以不用修改,计算机会随机生成一些内容)。 4、找到out.dat文件,按照题目的要求,对照in.dat完成答案的输入,此处切记一定要按照题目要求输入答案,多了一个空格或任何其他可打印字符都将影响你的结果。 5、保存两个文件,然后退出关闭即可。

C语言如何进行文件输入与输出?(急求样例程序)
int i,flag;char str[80];FILE *fp;fp=open("text","w");flag=1;while(flag==1){printf("\\nInput string:\\n");gets(str);fprintf(fp,"%s",str);printf("\\nCountiune?");c=getchar();if((c=='N')||(c=='n'))flag=0;getchar();} fclose(fp);fp=fopen("...

相似回答