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

Zapis do pliku, program wypisuje śmieci.

Aruba Cloud - Virtual Private Server VPS
+1 głos
174 wizyt
pytanie zadane 12 czerwca 2020 w C i C++ przez amtrax Dyskutant (9,630 p.)

Cześć,

za zadanie mam napisać program, który skleja odpowiadające sobie wiersze 2 plików i zapisuje je w trzecim. 
Po wykonaniu programu, w  pliku "c.txt", można odnaleźć wyrazy, jednak wypisane są też tam niezrozumiałe ciągi znaków, lokalizacje  kompilatora na dysku etc. 

zawartość pliku a:

jeden dwa trzy
cztery piec szesc

zawartość pliku b:

1 2 3 
4 5 6 

Plik c powien wyglądać tak:
 

jeden dwa trzy 1 2 3 
cztery piec szesc 4 5 6 

Kod programu:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream odczyt_1("a.txt");
    ifstream odczyt_2("b.txt");
    ofstream zapis("c.txt" ,ios_base::out | ios_base::app);
    char ch;
    string miejsce , miejsce_2;

    while (!odczyt_1.eof())
    {
        odczyt_1.get(ch);
        miejsce += ch;

    }
    while (!odczyt_2.eof())
    {
        odczyt_2.get(ch);
        miejsce_2 += ch;

    }

    int i = 0, k = 0;
    int w1 = miejsce.length(), w2=miejsce_2.length();
    while(  i < w1 && k < w2)
    {

        while(miejsce[i] != '\n')
        {
            zapis<<miejsce[i];
            i++;
        }
        i++;
        zapis<<' ';
        while(miejsce_2[k] != '\n')
        {
            zapis<<miejsce_2[k];
            k++;
        }
        k++;
        zapis<<' ';
        zapis<<'\n';

    }
    return 0;
}

 

1
komentarz 12 czerwca 2020 przez tkz Nałogowiec (42,020 p.)
Pętla, wychodzisz po za zakres.
komentarz 12 czerwca 2020 przez amtrax Dyskutant (9,630 p.)

Dziękuje, 

dodałem do pętli warunek 

while(miejsce[i] != '\n' && i < w1)

[.....]

while(miejsce_2[k] != '\n' && k < w2)

Istnieje jeszcze jakaś dobra implementacja takich pętli? 

1
komentarz 12 czerwca 2020 przez tkz Nałogowiec (42,020 p.)
Podszedłbym do tego inaczej, wczytałbym każdą linie, połączył i zapisał. Wydaje mi się prostsze.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 633 wizyt
pytanie zadane 14 lipca 2020 w C i C++ przez Kxmil Nowicjusz (220 p.)
+3 głosów
4 odpowiedzi 2,314 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Phobos Użytkownik (720 p.)
0 głosów
1 odpowiedź 671 wizyt

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,663 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...