Kod: Zaznacz cały
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <windows.h>
using namespace std;
/*skrót działania:
funkcja odczytująca pliki odczytu i zapisu
funkcja sprawdzająca poprawność wczytanych plików i zwracająca iformację
funkacja licząca dwuznaki w danym pliku
funkcja zapisaująca dane do pliku końcow
void check(string &wejscie)
{
fstream plik;
plik.open(wejscie, ios::out);
if (plik.good() == true) { plik.close(); return 1;}
else {
cout << "Plik odczytu nie istnieje" << endl;
plik.flush();
plik.close();
exit(1);
}
}
void search(const string &wyjscie, string &wejscie)
{
long dw=0, t=0, y=0, pozycja=0;
string dane;
fstream plik;
plik.open(wejscie, ios::out);
pozycja = plik.tellp();
int z=(y%12);
int u=(y-z);
char** textline = new char*[y];
char tab1[12] = { 'c','d','g','l','n','p','q','r','s','t','x','z' };
char tab2[10][4] =
{
{ 'h', 'k', 's', 'z' },{ 'z', 'ż', 'ź', },
{ 'h', 'l', 'n' },{ 'y' },
{'g', 'y'},{'h'},{'u'},{'z'},
{'c', 'h', 'z'},{'h', 's'}
};
char tab1[12] = { 'c','d','g','l','n','p','q','r','s','t','x','z' };
do{
plik.seekg(y, ios::cur);
y=(y+t);
getline(plik, dane);
y = dane.length();
for (int n = 1; n < y; n++)
{
for (int j = 0; j < 12; j++)
{
if (*textline[n] == tab1[j])
{
for (int i = 0; i < 4; i++)
{
if (*textline[n - 1] == tab2[j][i])
{
dw++;
}
}
}
}
z=z-1;
}
}while( z==0 && pozycja != ios::end);
if(u!=)
{
y=y+u;
for (int n = 0; n <u ; n++)
{
for (int j = 0; j < 12; j++)
{
if (*textline[n] == tab1[j])
{
for (int i = 0; i < 4; i++)
{
if (*textline[n - 1] == tab2[j][i])
{
dw++;
}
}
}
}
}
}
plik.flush();
plik.close();
plik.open(wyjscie, ios::in);
wyjscie<<"Tekst posiada "<<dw<<" dwuznaków, natomiast "<<y<<"znaków";
plik.flush();
plik.close();
}
int main(int argc, char *argv[])
{
if (argc != 5) {
cout << "zla ilosc podanych argumentow"; return(1);
}
argv[2]=const string wyjscie;
argv[3]= string wejscie;
check(wyjscie, wejscie);
search(wejscie, wyjscie);
}
doczytałam teraz jeszcze dwa wymogi co po programu
1. Program musi być odporny na błędy wprowadzanych danych (brak plików, błędne dane, błędny
format danych, puste pliki, niepoprawne parametry uruchomienia programu, . . . ). Błąd danych nie
może spowodować zatrzymania programu przez system operacyjny. Program powinien wyświetlić
stosowny komunikat.
2. Program musi dopuszczać niewielkie niezgodności formatu danych wejściowych (puste linie, dodatkowe
spacje, białe znaki, . . . )
jak się do tego wgl zabrać????