Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Nadpisywanie pliku fstream

Ostatnio zmodyfikowano 2020-06-09 13:09
Autor Wiadomość
Steampunk0
Temat założony przez niniejszego użytkownika
Nadpisywanie pliku fstream
» 2020-06-09 01:57:55
Program generuje 10 liczb losowych z zakresu 1000-2000 i zapisuje je do pliku. Następnie za pomocą
operacji odczytu ma zwrócić do konsoli największą z nich. Problem w tym, że przy każdym uruchomieniu programu jest to ta sama liczba chyba, że usunę plik tekstowy i stworzy się on od nowa. W jaki sposób sprawić, żeby program generując nowe liczby nadpisywał te znajdujące się w pliku?

C/C++
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>

using namespace std;

int tab[ 10 ];
int najwieksza_liczba;
int main()


{
   
    fstream plik( "plik.txt" );
   
    plik.open( "plik.txt", ios::out );
   
    srand( time( NULL ) );
   
    for( int i = 1; i <= 10; i++ )
    {
        plik << 1000 + rand() %( 1000 ) << endl;
       
    }
   
    plik.close();
   
    plik.open( "plik.txt", ios::in );
   
    string linia;
    int nr_linii = 1;
    while( getline( plik, linia ) )
    {
        switch( nr_linii )
        {
        case 1: tab[ 0 ] = atoi( linia.c_str() );
        case 2: tab[ 1 ] = atoi( linia.c_str() );
        case 3: tab[ 2 ] = atoi( linia.c_str() );
        case 4: tab[ 3 ] = atoi( linia.c_str() );
        case 5: tab[ 4 ] = atoi( linia.c_str() );
        case 6: tab[ 5 ] = atoi( linia.c_str() );
        case 7: tab[ 6 ] = atoi( linia.c_str() );
        case 8: tab[ 7 ] = atoi( linia.c_str() );
        case 9: tab[ 8 ] = atoi( linia.c_str() );
        case 10: tab[ 9 ] = atoi( linia.c_str() );
        }
        nr_linii++;
    }
   
    najwieksza_liczba = tab[ 0 ];
    for( int x = 1; x < 10; x++ )
    {
        if( tab[ x ] > najwieksza_liczba )
             najwieksza_liczba = tab[ x ];
       
    }
   
    cout << najwieksza_liczba << endl;
   
    plik.close();
   
    return 0;
}
P-177022
Rashmistrz
» 2020-06-09 03:46:08
» Kurs C++Obsługa plików lekcja, użyj
std::ios::trunc

(Zawartość pliku jest tracona, plik jest obcinany do 0 bajtów podczas otwierania.)
P-177023
Steampunk0
Temat założony przez niniejszego użytkownika
» 2020-06-09 13:09:31
Już próbowałem, ale wpisywałem ją w złym miejscu. Teraz już działa dzięki wielke.
P-177025
« 1 »
  Strona 1 z 1