• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesuwanie linii w pliku tekstowym

Object Storage Arubacloud
0 głosów
502 wizyt
pytanie zadane 31 grudnia 2015 w C i C++ przez Jonki Dyskutant (8,180 p.)
Chcę z pliku sczytać vectorem wszystkich użytkowników, a potem z powrotem zapisać ich do pliku. Tylko że, użytkownicy będą zapisywani w kolejności od ostatniego do pierwszego. Chcę napisać tak, aby po wpisaniu do pliku tekstowego ostatniego użytkownika, przesunąć go tak jakby do drugiej linii i potem przedostatniego użytkownika zapisać do pierwszej linii i gdy będę chciał znowu zapisać kolejnego użytkownika to przeniesie gościa z pierwszej linii do drugiej i nowego wpisze do pierwszej. I tak dalej, aby każdy nowy użytkownik był wpisywany do pierwszej linii.

1 odpowiedź

0 głosów
odpowiedź 31 grudnia 2015 przez niezalogowany

Kilka spraw:

użytkownicy będą zapisywani w kolejności od ostatniego do pierwszego

Nie podałeś wyjaśnienia, co to dokładnie oznacza, wg jakiego kryterium będzie ustalana ich kolejność (alfabetycznie, id, ...)?

przesunąć go tak jakby do drugiej linii

"tak jakby"? Jeżeli ty nie wiesz jak to ma wyglądać, to my raczej też.

Dalej opis robi się jeszcze mniej ciekawy. Napisz jeszcze raz o co ci chodzi (zedytuj swoje pytanie) i napisz o co ci chodzi na przykładowych danych.

komentarz 31 grudnia 2015 przez Jonki Dyskutant (8,180 p.)
Użytkownicy są ułożeni w normalnej kolejności, po wpisaniu do vectora będą dalej w tej samej kolejności. Ale jeśli już będę chciał użytkowników z vectora zapisać znowu do pliku, to będzie zapisywało ich od końca, bo tak działa vector. Więc chcę, że gdy z vectora zapiszę do pliku użytkownika do pierwszej linii, on przy zapisywaniu kolejnego użytkownika przesunie się do kolejnej linii, czyli drugiej itd.
komentarz 31 grudnia 2015 przez niezalogowany

Hmm, widzę że nie rozumiesz mojej perspektywy, co oznacza u ciebie wyrażenie "normalna kolejność". Przykład:

Załóżmy, że mam jakiś zbiór liczb {2,4,11,3,-23,42,1245,6544}, nie istnieje coś takiego jak "normalna kolejność" o ile jej jakoś nie zdefiniujesz, np możemy uznać, że normalną kolejnością jest ułożenie liczb rosnąco, ale nic też nie stoi na przeszkodzie aby normalną kolejnością było ustawienie liczb malejąco, albo jeszcze inaczej, np wg kolejności wstawiania liczb do zbioru (czyli taka reprezentacja w jakiej przedstawiłem zbiór).

Załóżmy, że chodzi ci o kolejność wstawiania, czyli jak masz:

a.push_back("u1");
a.push_back("u4");
a.push_back("u2");
a.push_back("u7");

To wartości ustawione wg "kolejności normalnej" prezentują się następująco:{ u1,u4,u2,u7}, czyli wewnątrz pliku masz coś takiego:

u1
u4
u2
u7

Ale jeśli już będę chciał użytkowników z vectora zapisać znowu do pliku, to będzie zapisywało ich od końca, bo tak działa vector.

Jeżeli chcesz zapisać cały plik od nowa (tzn nie chcesz mieć duplikatów/listy użytkowników z poprzedniej sesji), to musisz przy otwieraniu pliku do zapisu użyć flagi std::ios::trunc (ważne! jeżeli otworzysz plik z trybem trunc w momencie gdy nie wczytałeś zawartości pliku to nic nie wczytasz, trunc kasuje zawartość pliku po jego otworzeniu). vector nie ma tu nic do rzeczy, bo możesz odczytać go wg dowolnej kolejności, a nie tylko od końca.

Więc chcę, że gdy z vectora zapiszę do pliku użytkownika do pierwszej linii, on przy zapisywaniu kolejnego użytkownika przesunie się do kolejnej linii, czyli drugiej itd.

Tego absolutnie nie rozumiem (nie wiem w jaki sposób oznaczasz kolejność linii w kodzie, co decyduje o tym, w której linii będzie zapisany user), bez jakiegoś kodu ciężko mi stwierdzić o co ci chodzi

Podobne pytania

0 głosów
3 odpowiedzi 295 wizyt
pytanie zadane 12 grudnia 2015 w C i C++ przez Skill Użytkownik (910 p.)
0 głosów
1 odpowiedź 840 wizyt
pytanie zadane 10 grudnia 2015 w C i C++ przez baszmest Gaduła (3,080 p.)
–1 głos
2 odpowiedzi 629 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez Łukasz Kutyński Początkujący (330 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...