c语言两个txt文件读取数据处理,请求编程,五块钱红包直接发微信

a文件有数字000-999共1000个数(注意数字表示方法),数字不换行,数字之间空格隔开,b文件同理,只有不到600个数。需要对两个txt进行比较,输出a中有而b中无的数字,到新的文本c中。拿来就用,等待中

思路,a文件中的数字是确定的,根本不要考虑,只需要b文件中缺少的数字就好了

把b中的数字都出来,挨个确认就是了,假设b中数字有重复且不是按顺序排列的

#include    <stdio.h>
int    main(void)
{
    FILE    *fpb,*fpc;
    char    *temp[2400];
    int     b[600];
    int     n;
    if(fpb=fopen("b.txt","r")&&fpc=fopen("c.txt","w+")) 
  {
      fgets(temp,2400,fpb);
      n=strlen(temp)/4;
      for(int i=0;i<n;i++)
      {
          b[i]=(temp[n*i]-48)*100;
          b[i]=b[i]+(temp[n*i+1]-48)*10;
          b[i]=b[i]+temp[n*i+2]-48;
      }
      for(i=0;i<n;i++)
      {
            for(j = 0; j < n - 1 - i; j++)
            {
                if(b[j] > b[j + 1])
                {
                    b[j] = b[j] ^b[j+1];
                    b[j+1] = b[j] ^ b[j+1];
                    b[j] = b[j] ^ b[j+1];
                 }             
             }   
      }
      if(b[0]>0)
      {
          for(i=0;i<b[0];i++)
          {
              fprintf(fpc,"%03d ",i);
          }
      }
      for(i=1;i<n;i++)
      {
          if((b[i]-b[i-1])>1)
          {
              for(j=1;j<(b[i]-b[i-1]);j++)
              {
                  fprintf(fpc,"%03d ",b[i]+j);
              }
          }
      }
      fclose(fpb);
      fclose(fpc);
  }
  else
  { 
      printf("打开文件b.txt或者创建文件c.txt失败!\n");
      return    0;
  }
    return    0;
}

温馨提示:答案为网友推荐,仅供参考
相似回答