请大家帮下忙看看那里错了.小弟我基础不好.多谢了

请大家帮下忙看看那里错了.我基础不好.谢谢了
#include   <stdlib.h>
#include   <math.h>
#include   <string.h>
#include   <ctype.h>
#include   <stdio.h>
/*这是一个读出一个含有转义字符的文本,经过该程序输出一个转义后真实字符文本,\123代表3位八进制ASC码所对应的字符,\1234多余3位就表示成(1234)O,十六进制同理.\x20   2位16进制表示.*/
void   oconvert(char,FILE   *);//八进制的判断
void   main()
{
FILE   *in,*out;
char   infile[20],outfile[20],ch;
printf( "输入要转义文件的文件名: ");
scanf( "%s ",infile);
printf( "输入要存放转义后文件的文件名: ");
scanf( "%s ",outfile);
        in=fopen(infile, "r ");
        out=fopen(outfile, "w ");
while(!feof(in))
        {      
ch=fgetc(in);
        if   (ch== '   ')   fputc(char(32),out);       //判断字符串中的空格
else   if   (ch== '\\ ')      
      { ch=fgetc(in);
if   (ch> 47   &&   ch <56)   oconvert(ch,out);
else   {
        switch   (ch)
{
                  //case   'x ':
          case   'a ':   fputc(char(7),out);
      break;
          case   'b ':   fputc(char(8),out);
      break;
          case   'f ':   fputc(char(12),out);
      break;
          case   'n ':   fputc(char(10),out);
      break;
          case   'r ':   fputc(char(13),out);
      break;
          case   't ':   fputc(char(9),out);
                                      break;
          case   'v ':   fputc(char(11),out);
                                      break;
          case   '\\ ':   fputc(char(92),out);
                                      break;
                                  case   '\? ':   fputc(char(63),out);
                                      break;
          case   '\ ' ':   fputc(char(39),out);
                                      break;
          case   '\ " ':   fputc(char(34),out);
                                      break;
          case   '\0 ':   fputc(char(0),out);