• 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.

Object Storage Arubacloud
+1 głos
119 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,000 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,000 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 497 wizyt
pytanie zadane 14 lipca 2020 w C i C++ przez Kxmil Nowicjusz (220 p.)
+3 głosów
4 odpowiedzi 1,709 wizyt
pytanie zadane 30 czerwca 2015 w C i C++ przez Phobos Użytkownik (720 p.)
0 głosów
1 odpowiedź 461 wizyt

92,556 zapytań

141,404 odpowiedzi

319,562 komentarzy

61,942 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!

...