Odczytywanie liczb z pliku mnożenie ich i zapisywanie.

0

Witam, potrzebuje program który wczyta mi z pliku tylko liczby parzyste, przemnoży je przez 2 i zapisze do innego pliku. Mam coś takiego:

#include<iostream>
#include<fstream>

using namespace std;

int main(){
    
    ifstream in("plik.txt");
    int licznik=1;
    string wers[100];
    
    while(getline(in, wers[licznik])){
                      cout<<wers[licznik]<<endl;
                      licznik++;
                      }
                      
 ofstream outputFile;
outputFile.open("liczby2.txt");


outputFile.close();                     
    system("PAUSE");
    
}

Niestety to co napisałem jedynie odczytuje dane z pliku i nawet ich nie zapisuje do drugiego.. Prosił bym o pomoc ; )

0

A nie

getline(**cin**, )? 
0

A to coś zmieni?

0
while(in >> i /* typu int */) {
  if(i % 2)
    out << i *2 << '\n';
}
0

Dzięki, tylko jak teraz zapisać te pomnożone liczby do pliku ?

0

Jeśli wiesz ile będziesz miał tych liczb możesz użyć tablic, jeśli nie wiesz to jest też vector. Tylko wcześniej musisz dodać liczby do tej tablicy.

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

int main()
{
   
	int tablicaNowychLiczb[100];
	ofstream zapis("plik.txt");
    for(j=0;j<100;j++)
	{
		zapis<<tablicaNowychLiczb[j];
	}
    getchar();
    return 0;
}
0

A więc mój program wygląda tak:

#include <iostream>
#include <fstream>
using namespace std;
int j,i,out; 
int main()


{
    
    ifstream in("plik.txt");
    int licznik=1;
    string wers[100];
    
    while(getline(in, wers[licznik])){
                      cout<<wers[licznik]<<endl;
                      licznik++;
                      }
                      
                      while(in >> i /* typu int */) {
  if(i % 2)
    out << i *2 << '\n';
}
{
 
        int tablica[5];
        ofstream zapis("liczby.txt");
    for(i=0;i<5;i++)
        {
                zapis<<tablica[j];
        }
    getchar();
    return 0;
}}

Niestety wciąż nie zapisuje mi tych liczb do drugiego pliku.. co jest nie tak?

0

out << i *2 << '\n'; ---> co to jest???
Przecież out jest to zmienna(typu int) a ty chcesz z niej zrobić strumień?!!!

Ja osobiście bym zrobił tak (Pisane bez kompilatora):

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

fstream odczyt("plik.txt", ios::in);
fstream zapis("zapis.txt", ios::out);

int main()
{
       int temp;

      while(odczyt >> temp)
             if(temp % 2 == 0)
                zapis << temp * 2 << endl;
}
0

Dzięki wielkie nie spodziewałem się że można to tak prosto zrobić ; D

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