Witam napisałem program który pobiera z pliku liczby i zamienia je na liczby pierwsze(1 liczba na 1 linijke).
Program wyglada tak,ze odczytuje liczbe sprawdzam czy to jest liczba jak tak to wykonuje działanie jak nie to wypisuje błąd.
Problem w tym,ze dzialanie sie nie wykonuje,a błąd wyskakuje w jednej linijce nawet jak mama 4 liczby złe.Nie wiem czy z tymi niewiadomymi czegos nie poknociłem,bo juz sie troche w tym pogubiłem.
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
#include<cstdlib>
#include<sstream>
using namespace std;
void zapisdo2(string plik2,const char* k)
{
fstream plikos;
plikos.open("plik2.txt",ios::out);
plikos<<k<<endl;
}
void zapisdo(string plik2,int k)
{
fstream pliko;
pliko.open("plik2.txt",ios::out);
pliko<<k<<endl;
}
void rozklad(int x)//rozklad na czyyniki
{
string plik2;
int k=2;
while(x>1)
{
while(x%k==0)
{
zapisdo(plik2,k);
x/=k;
}
++k;
}
}
void odczytpliku(string plik1)
{
string plik2;
fstream plik;
string linia;
int z;
plik.open("plik1.txt",ios::in);
if(plik.good())
{
while(getline(plik,linia))
z=0;
int x=0;
{
for( unsigned int i=0;i<linia.length();i++)
{
if( !isdigit( linia[i] ) )
z=1;
}
if(z!=1)
{
istringstream iss(linia);
linia = x;
rozklad(x);
}
if(z==1)
{
const char* k="blad wprowadzenia\n";
zapisdo2(plik2,k);
}
}
}
else
cout<<"nie udalo sie wczytac";
}
int main()
{
string plik1;
odczytpliku( plik1);
return 0;
}