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

położenie wskaźnika

Ostatnio zmodyfikowano 2017-11-11 16:00
Autor Wiadomość
ksardias
Temat założony przez niniejszego użytkownika
położenie wskaźnika
» 2017-11-11 14:23:53
C/C++
void nauka()
{
    string dane[ 10 ];
    int i = 1, k, c;
    zlecenie = "cos.txt";
    if( ifstream( zlecenie.c_str(), ios::ate ).tellg() )
    { zlecenie = "cos.txt";
        plik.open( zlecenie.c_str(), ios::in );
        while( !plik.eof() )
        {
            getline( plik, dane[ i ] );
            cout << i << ". " << dane[ i ] << endl;
            i++;
        }
        plik.close();
        plik.clear();
       
        {
           
           
            k = i - 1;
            cout << "Wybiez numer: " << endl;
            cin >> i;
            zlecenie = "cos.txt";
            plik.open( zlecenie.c_str(), ios::out );
           
           
            for( int c = 1; c < i; c++ )
            {
                if( plik.good() == false ) cout << "Nie mozna otworzyc pliku!";
               
                plik << dane[ c ] << endl;
            }
           
            for( i; k > i; i++ )
            {
                if( plik.good() == false ) cout << "Nie mozna otworzyc pliku!";
               
                plik << dane[ i + 1 ] << endl;
            }
           
            plik.clear();
            plik.seekg( - 2, ios::end );
            if( plik.fail() ) cout << "Error! Nie udalo sie przesunac wewnetrznego wskaznika pliku" << std::endl;
           
            streampos tellp( i );
           
            cout << i;
            streampos tellg( i );
            cout << i;
           
           
            plik.close();
            plik.clear();
        }
    } else
         cout << "nie ma nic" << endl;
   
    Sleep( 2000 );
}
ten program będzie odpowiedzialny za przenoszenie pojedynczych (podanych przez użytkownika) linijek do innego pliku, a gdy nic już nie zostanie ma wykonać parę instrukcji, problemem jest zostawianie wskaźnika w złym miejscu po wczytaniu lini?
2. Dlaczego wskaźnik nie zostaje przesunięty?
P-166725
pekfos
» 2017-11-11 14:42:27
Napisz z czym dokładnie masz problem. Teraz mogę ci powiedzieć, że źle indeksujesz tablice i to
C/C++
streampos tellp( i );

cout << i;
streampos tellg( i );
cout << i;
nie ma żadnego sensu.
P-166727
ksardias
Temat założony przez niniejszego użytkownika
» 2017-11-11 15:00:13
fakt, ten błąd już zrozumiałem.
Wczytuje pojedyncze linie, a gdy już wczytam wszystkie chciałbym wykonać dalsze instrukcje, problem polega na tym że prznosząc tym sposobem te pojedyncze linie, zostaje w każdej lini znak biały, jak tego uniknąć, albo jak zmienić warunek pierwszego if'a?
P-166732
pekfos
» 2017-11-11 15:23:21
Teraz w ogóle nie wiadomo o co chodzi. Jakie białe znaki? Jaki "pierwszy if"? Ten?
C/C++
if( ifstream( zlecenie.c_str(), ios::ate ).tellg() )
Faktycznie nie ma sensu, ale co to ma do rzeczy..?
P-166737
ksardias
Temat założony przez niniejszego użytkownika
» 2017-11-11 15:38:00
- jest to fragment programu do warsztatu samochodowego który ma takie opcje:
- zapis klienta
- zapis samochodu
- aktualizacja zlecen (przeniesienie wykonanych zlecen, czyli pojedynczych lini z plku w folderze "do zrobienia" do pliku w folderze "Zrobione")
- obecnie na warsztacie (lista tych zlecen które posiadają cokolwiek w pliku w folderze "do zrobienia" ***i tu jest problem*** bo gdy przeniose wszystkie linijki to nadal w pliku cos jest chyba biały znak)
 (do pliku zapisuje zlecenia
 każde zlecenie to nowa linia
 jak wykonam zlecenie to przenosze je do innego pliku
 jak skończą się zlecenia to chce aby plik został przeniesiony do innego folderu)
P-166741
pekfos
» 2017-11-11 16:00:07
C/C++
while( getline( plik, dane[ i ] ) )
P-166745
« 1 »
  Strona 1 z 1