一世轻尘 发表于 2020-12-12 14:27:55

莫名其妙的字符

#include<stdio.h>
#include<stdlib.h>
int i;
int main()
{
        char n,ch,c;
        FILE *fp1=fopen("a.c","r");//以只读的方式打开输入文件
        FILE *fp2=fopen("b.c","r");//以只读的方式打开输出文件
        if(fp1==NULL){//文件a.c不存在
                printf("打开文件失败\n");
                return 0;
        }
        else if(fp2==NULL)//文件b.c不存在
        {
                fclose(fp2);
                for(i=0;(ch=fgetc(fp1))!=EOF;i++)
        {
                c=ch;
                putchar(c);
        }
          fclose(fp1);
          fp2=fopen("b.c","w");
          for(i=0;i<n;i++)
          {
                  putc(c,fp2);
                  putchar(c);
          }
          printf("\n");
          fclose(fp2);
          return 0;
        }
        else//两文件都存在
        {
                printf("请选择是否覆盖原文件:\n覆盖则输入A\n不覆盖则输入B\n");
                scanf("%c",&n);
                switch(n)//选择是否覆盖
                {
                        case'A':
                        fclose(fp2);
                        for(i=0;(ch=fgetc(fp1))!=EOF;i++)
          {
                  c=ch;
                  putchar(c);
          }
          fclose(fp1);
          fp2=fopen("b.c","w+");
          fflush(stdin);
          for(i=0;i<n;i++)
          {
                  putc(c,fp2);
                  putchar(c);
          }
          printf("\n");
          fclose(fp2);
                        break;
                        case'B':break;
                        default:printf("enter data error!\n");
                }
        }
        return 0;
}
有没有哥哥姐姐帮我分析一下最后一行那玩意咋去掉啊,烦恼{:5_90:}

严凯 发表于 2020-12-12 16:00:35

#include<stdio.h>

int main(void)
{
      int f = 1                                                            ;
      char c                                                               ;
      FILE * fp1 , * fp2                                                   ;
      if((fp1 = fopen("a.c" , "r")) != NULL) {
                if((fp2 = fopen("b.c" , "r")) != NULL) {
                        f = 0                                                ;
                        fclose(fp2)                                          ;
                        printf("输出文件 <b.c> 已经存在\n")                  ;
                        printf("请决定是否覆盖 (y / n) : ")                  ;
                        c = getchar()                                        ;
                        if(c == 'Y' || c == 'y') f = 1                     ;
                }
                if(f) {
                        if((fp2 = fopen("b.c" , "w")) != NULL) {
                              c = fgetc(fp1)                               ;
                              while(! feof(fp1)) {
                                        fputc(c , fp2)                     ;
                                        putchar(c)                           ;
                                        c = fgetc(fp1)                     ;
                              }
                              fclose(fp2)                                  ;
                        } else {
                              fprintf(stderr , "\n")                     ;
                              fprintf(stderr , "无法创建输出文件 <b.c>\n") ;
                              fprintf(stderr , "\n")                     ;
                        }   
                }
                fclose(fp1)                                                ;
      } else {
                fprintf(stderr , "\n")                                       ;
                fprintf(stderr , "无法打开输入文件 <a.c>\n")               ;
                fprintf(stderr , "\n")                                       ;
      }
}




//没有人来,你就把这个最佳给我吧。我还没有被别人最佳过{:10_297:}

一世轻尘 发表于 2020-12-12 16:08:11

严凯 发表于 2020-12-12 16:00
#include

int main(void)


略略略{:10_264:}

严凯 发表于 2020-12-12 16:45:49

一世轻尘 发表于 2020-12-12 16:08
略略略

谢谢!爱了爱了{:10_297:}
页: [1]
查看完整版本: 莫名其妙的字符