Advertisement
NuquernaNarsil

Untitled

Nov 16th, 2015
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <string>
  4. #include <fstream>
  5.  
  6. using namespace std;
  7.  
  8. void justowanie(string tekst)
  9. {
  10.     string justed;
  11.     int miejscespacji=0, x=1, temp=1;
  12.     cout << tekst;
  13.    
  14.     for (size_t i = 0; i < tekst.length(); i++)
  15.     {
  16.       justed += tekst[i];  
  17.    
  18.       if (justed[i] == ' ')
  19.         miejscespacji = i;
  20.    
  21.       if (x == 120)
  22.       {
  23.         justed[miejscespacji] = '\n';
  24.         int old = justed.length();
  25.         justed = justed.substr(0, miejscespacji + 1);
  26.         i -= old - justed.length();
  27.         x = 1;
  28.         temp++;
  29.         continue;
  30.       }
  31.       x++;
  32.     }      
  33.    
  34.     string justedtab[temp];
  35.     int y=0;
  36.     for(int i=0; i<justed.length();i++)
  37.     {
  38.         justedtab[y]+=justed[i];
  39.         if(justed[i]=='\n')
  40.             y++;
  41.     }
  42.    
  43.     int dodac=0;
  44.     for(int i=0; i<temp; i++)
  45.     {
  46.         dodac=120-justedtab[i].length()+1;
  47.         for(int j=0; j<justedtab[i].length(); j++)
  48.         {
  49.             if(justedtab[i][j]==' ')
  50.             {
  51.                 dodac--;
  52.                 justedtab[i].insert(j," ");
  53.             }
  54.             if(dodac<1)
  55.                 break;
  56.         }
  57.     }
  58.    
  59.    
  60.     cout << temp;
  61.    
  62.     ofstream zapis;
  63.     zapis.open("wyjustowany.txt");
  64.     zapis << justed;
  65.     zapis.close();
  66.     }
  67.  
  68.  
  69.  
  70. bool start()
  71. {
  72.     int choose;
  73.     cout <<"Program justuje tekst z pliku (.txt) o podanej nazwie, lub wczytany z klawiatury\n";
  74.     system("pause"); system("cls");
  75.     cout <<"Wczytac tekst z pliku, czy zostanie podany ?\n1.Z pliku.\n2.Podany.\nTwoj wybor: ";
  76.     do{
  77.     cin >> choose;
  78.         if(!cin || choose!=1 && choose!=2) 
  79.         {
  80.             cout <<"\nPodaj poprawna liczbe: ";
  81.             cin.clear();
  82.             cin.sync();
  83.         }
  84.     }while(!cin || choose!=1 && choose!=2);
  85.     system("pause"); system("cls");
  86.    
  87.     if(choose==1)
  88.         return 1;
  89.     else
  90.         return 0;
  91. }
  92.  
  93. void zpliku ()
  94. {
  95.     int choose;
  96.     ifstream plik;
  97.     string nazwapliku,tekst;
  98.    
  99.     do{
  100.         cout <<"Podaj nazwe pliku (bez rozszerzenia), z ktorego wczytac tekst: ";
  101.         cin >> nazwapliku;
  102.         nazwapliku+=".txt";
  103.         plik.open(nazwapliku.c_str());
  104.         if(plik.is_open())
  105.         {
  106.             while(plik.good())
  107.                 {
  108.                     getline(plik, tekst);
  109.                 }
  110.             justowanie(tekst);
  111.             choose=2;
  112.         }
  113.         else
  114.         {
  115.             cout <<"Problem z odczytem pliku. \nBrak pliku o takiej nazwie, lub plik nie jest plikiem .txt";
  116.             cout <<"\n\n1.Podaj nazwe ponownie.\n2.Wyjdz.\n\nWybor: ";
  117.             do{
  118.             cin >> choose;
  119.                 if(!cin || choose!=1 && choose!=2) 
  120.                 {
  121.                     cout <<"\nPodaj poprawna liczbe: ";
  122.                     cin.clear();
  123.                     cin.sync();
  124.                 }
  125.             }while(!cin || choose!=1 && choose!=2);
  126.         }
  127.         system("pause"); system("cls");
  128.     }while(!cin || choose==1 );
  129.    
  130. }
  131.  
  132. void stdstr()
  133. {  
  134.     string tekst;
  135.     cout <<"Podaj tekst, ktory ma zostac wyjustowany: ";
  136.     cin.clear();
  137.     cin.sync();
  138.     getline(cin, tekst);
  139.     justowanie(tekst);
  140. }
  141.  
  142.  
  143.  
  144. main()
  145. {
  146.     if(start())
  147.         zpliku();
  148.     else
  149.         stdstr();
  150.    
  151.     return 0;
  152. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement