Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.76 KB | None | 0 0
  1. int main( int argc, char** argv ) {
  2.    
  3.     (void) argc; // unsed
  4.     (void) argv; // unsed
  5.  
  6.     FILE *in = stdin, *out = stdout;
  7.     if(argc > 1){
  8.  
  9.         in = fopen(argv[1], "r");
  10.         if(in ==NULL){
  11.             printf("Neotevren soubor %s \n", argv[1]);
  12.                     in = stdin;
  13.  
  14.         }
  15.  
  16.     }
  17.     if(argc == 3){
  18.         out = fopen(argv[2], "w+");
  19.     }
  20.  
  21.     char ch;
  22.     enum{start, slash, dslash, ignore,lslash, eolslash} state = start;
  23.  
  24.     while((ch = fgetc(in)) != EOF){
  25.     switch (state){
  26.     case start:
  27.         if ((ch == '\'') || (ch == '\"')){
  28.                 state = ignore;
  29.                 fputc(ch, out);
  30.                 break;
  31.     }
  32.         else if(ch == '/'){
  33.  
  34.             state = slash;
  35.         }else{
  36.  
  37.             fputc(ch, out);
  38.         }
  39.  
  40.         break;
  41.     case slash:
  42.         if(ch== '/'){
  43.             state=dslash;
  44.         }else if(ch== '*'){
  45.             state=lslash;
  46.         }
  47.  
  48.             else{
  49.  
  50.             state=start;
  51.             fputc('/', out);
  52.             fputc(ch, out);
  53.         }
  54.         break;
  55.     case dslash:
  56.         if(ch == '\n'){
  57.             fputc(ch, out);
  58.             state = start;
  59.         }
  60.         break;
  61.     case ignore:
  62.         if((ch == '\'') || (ch == '\"')){
  63.            state = start;
  64.            fputc(ch, out);
  65.         }else{
  66.             fputc(ch, out);
  67.         }
  68.  
  69.         break;
  70.  
  71.     case lslash:
  72.         if (ch== '*'){
  73.             state = eolslash;
  74.         }
  75.         break;
  76.     case eolslash:
  77.         if(ch== '/'){
  78.             state = start;
  79.         } else {
  80.             state = lslash;
  81.         }
  82.         break;
  83.     default:
  84.         break;
  85.  
  86.  
  87.     }
  88.     }
  89.     if(argc > 1){
  90.     fclose(in);}
  91.     if(argc >2){
  92.     fclose(out);}
  93.     return 0;
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement