Pomijanie znaków przy przepisywaniu

0

Witam,
po długich męczarniach w końcu udało mi się napisać pożądany kod, ale wciąż mam problem, którego nie potrafię przeskoczyć. Mój poziom znajomości C++ określiłbym jako "ledwie orientuję się, że coś takiego istnieje". W związku z tym postanowiłem napisać ten post, może jakaś dobra duszyczka pomoże. Chciałbym, że program oprócz tego, że przepisuje plik tekstowy, pomijał część przepisywanych znaków. Prościej mówiąc, niech przepisuje powiedzmy co trzeci znak. Tzn. powiedzmy w pliku pierwszym jest zdanie: "AlaMaKotaiCzteryPsy", i w pliku drugim powinienem otrzymać coś w stylu: "Aaozyy". Będę bardzo wdzięczny za pomoc :) Oto mój kod:

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
  char b, bbb[256];
  char x, xxx[256];

  ifstream otworz;
  ofstream plik;

  cout << "Wybierz plik zrodlowy: ";
  cin.get (bbb,256); // formularz
  otworz.open (bbb);

  cin.ignore(); 

  cout << "Wybierz plik docelowy: ";
  cin.get (xxx,256); // formularz
  plik.open (xxx);
 

  while (otworz.good())    // petla przepisujaca znaki
  {
    b = otworz.get();  
	if (otworz.good())
	  plik << b;
}
  
    otworz.close();
	plik.close();


  system("pause");

  return 0;

}

Pozdrawiam

0

http://www.cplusplus.com/reference/iostream/istream/get/
Czytaj z pliku za pomocą get() a wpisuj do drugiego pliku co 3 znak.

0

Uff, a można prościej? :P Albo od razu prosiłbym o gotowe rozwiązanie jeśli komuś by się chciało, jeden jedyny raz spróbowałem rozwiązać problem przez programowanie i widzę, że przekracza to zdecydowanie moje możliwości. :P

Pozdrawiam

0

Jak to ma być szybko rozwiązany problem to po prostu weź jakiś język skryptowy.

0

Czyli rozumiem, że dokończenie tego kodu w C++ wymaga wiele kombinowania? Może spróbowałbym się pobawić tylko potrzebuje dokładniejszych wskazówek. :D

Pozdrawiam

0

Dokończenie tego kodu to na moje oko kwestia dopisania 5-6 linijek, napisałem zresztą jakich.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    string outname,inname;
    char znak;
    ifstream in;
    ofstream out;
    cout << "Wybierz plik zrodlowy: ";
    getline(cin,inname);
    in.open(inname.c_str(),ios_base::in);
    cout << "Wybierz plik docelowy: ";
    getline(cin,outname);
    out.open(outname.c_str(),ios_base::out);
    while ((znak=in.get()) != EOF)
    {
        out.put(znak);
        in.seekg(3,ios_base::cur); //ile znaków pomijamy
    }
    in.close();
    out.close();
    return 0;
}
0

Dzięki ci dobry człowieku! W życiu bym tego sam nie zrobił, dziękuję!

1 użytkowników online, w tym zalogowanych: 0, gości: 1