aLT22

3semlab1 Final

Dec 10th, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. enum status
  7. {
  8.     Start = 0,
  9.     PossibleComment = 1,
  10.     Comment1 = 2,
  11.     Comment2 = 3,
  12.     PossibleEnd = 4,
  13.     Char = 5,
  14.     String = 6
  15. };
  16.  
  17. int main ()
  18. {
  19.     ifstream fin; ofstream fout;
  20.     fin.open ("input.txt"); fout.open ("output.txt");
  21.     status st = Start;
  22.     if (fin)
  23.     {
  24.         char symbol;
  25.         while (fin.get(symbol))
  26.         {
  27.             cout<<symbol;
  28.             switch (st)
  29.             {
  30.             case Start:
  31.                 if (symbol == '/')
  32.                 {
  33.                     st = PossibleComment;
  34.                     break;
  35.                 }
  36.                 else
  37.                 {      
  38.                     if (symbol == '\'')
  39.                     {
  40.                         st = Char;
  41.                         fout << symbol;
  42.                         break;
  43.                     }
  44.                     else
  45.                     {
  46.                         if (symbol == '"')
  47.                         {
  48.                             st = String;
  49.                             fout << symbol;
  50.                             break;
  51.                         }
  52.                         else
  53.                         {
  54.                             fout << symbol;
  55.                             break;
  56.                         }
  57.                     }
  58.                 }
  59.             case PossibleComment:
  60.                 if (symbol == '/')
  61.                 {
  62.                     st = Comment1;
  63.                     break;
  64.                 }
  65.                 else
  66.                 {
  67.                     if (symbol == '*')
  68.                     {
  69.                         st = Comment2;
  70.                         break;
  71.                     }
  72.                     else
  73.                     {
  74.                         fout << symbol;
  75.                         break;
  76.                     }
  77.                 }
  78.             case Comment1:
  79.                 if (symbol == '\n')
  80.                 {
  81.                     st = Start;
  82.                     fout<<symbol;
  83.                     break;
  84.                 }
  85.                 else
  86.                 {
  87.                     break;
  88.                 }
  89.             case Comment2:
  90.                 if (symbol == '*')
  91.                 {
  92.                     st = PossibleEnd;
  93.                     break;
  94.                 }
  95.                 else
  96.                 {
  97.                     break;
  98.                 }
  99.             case PossibleEnd:
  100.                 if (symbol == '/')
  101.                 {
  102.                     st = Start;
  103.                     break;
  104.                 }
  105.                 else if(symbol == '*')
  106.                 {
  107.                     break;
  108.                 }
  109.                 else
  110.                 {
  111.                     st = Comment2;
  112.                     break;
  113.                 }
  114.             case Char:
  115.                 if (symbol == '\'' || symbol == '\n')
  116.                 {
  117.                     fout << symbol;
  118.                     st = Start;
  119.                     break;
  120.                 }
  121.                 else
  122.                 {
  123.                     fout << symbol;
  124.                     break;
  125.                 }
  126.                 if (symbol == '\\')
  127.                 {
  128.                     fout << symbol;
  129.                     st = Char;
  130.                     break;
  131.                 }
  132.             case String:
  133.                 if (symbol == '\'' || symbol == '"')
  134.                 {
  135.                     fout << symbol;
  136.                     st = Start;
  137.                     break;
  138.                 }
  139.                 else
  140.                 {
  141.                     fout << symbol;
  142.                     break;
  143.                 }
  144.                 if (symbol == '\\')
  145.                 {
  146.                     st = String;
  147.                     fout << symbol;
  148.                     break;
  149.                 }
  150.             }
  151.         }
  152.     }
  153.     fin.close(); fout.close();
  154.     return 0;
  155. }
Advertisement
Add Comment
Please, Sign In to add comment