blad w programie

0

Witam!
Napisalem oto taki krotki program:

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
main()
{
int stop;
stop==0;
if (stop=0)
{
char litera;
ifstream plik;
plik.open("test.txt");
plik >> litera;
plik.close();
cout<<litera;
if (litera!='.')
{
stop==1;
}
}
system("PAUSE");
return 0;
}
Mial on za zadanie odczytać z istniejacego pliku jego zawartość (kokretnie wyraz) konczac na kropce, piszac go na ekranie.
Jestem początkujacym programistą C++, wiec prosze o pomoc. :-)
Dziękuje z góry!

0

Bląd jest na samym początku jak można przyrównać zmienną do zera bez żadnego warunkowania?? Powinieneś zapisać tak

stop=0;

if(stop==0)

itd

a nie!!!

stop==0; // to również żle
if(stop=0) //to jest zle

A reszty nie sprawdzałem

1

poza tym zamiast pierwszego ifa powinien byc while chyba ne ?
poza tym jeszcze zmienna stop jest zbedna, jest cos takiego jak break ;p

aaa
i plik otworz PRZED whilem
a zamknij PO while'u
bo jak bedziesz sobie go tak otwieral, odczytywal jeden znak i zamykal
to w sumie caly czas ten sam znak bedziesz odczytywal...

0

Wielkie dzieki za pomoc, juz naprawilem program.
W nagrode stawiam wam piwo [browar] :-)

Pojawil mi sie teraz nowy problem. Mianowicie jak zrobic aby program dodawal 1 linie w juz istniejacym pliku. Mianowicie:

"Dodany tekst przez program"
"Przykladowy tekst 1"
"Przykladowy tekst 2"
"Przykladowy tekst 3"

Tym razem postawie skrzynke browarów :d

Dzieki z gory!

0

Ponizszy kod dopisze cos na poczatku nowootwartego pliku:

fstream plik("costam.txt",ios::in);
plik<<"Dodany tekst przez program"<<endl;

Jesli plik byl otwarty i czytales z niego i zapisywales, to:

plik.seekp(0,ios::beg);
plik<<"Dodany tekst przez program"<<endl;

0

Interesuje mnie cos co dopisuje tekst do istniejacego pliku, ale nie kasuje jego zawartosci. To co napisales Anonim kasuje zawartosc pliku. Jednak dzieki za odpowiedz!!:)

0

fstream::seekg(0,istream::end) // fstream::end - obojetnie; seekg jest dziedziczone z istream

Czyli w twoim przypadku zanim zaczniesz pisać:

plik.seekg(0,istream::end);
lub
plik.seekg(0,fstream::end);

// a praktycznie również klasy posrednie ifstream/iostream ::end

// dopisane: albo seekq jak anonim napisał, ale z end, zamiast beg

0

ok, dzieki teraz moge zrobic moj programik ;-)

ps
Zgodnie z obietnicą stawiam skrzynke piwa :d

[browar] [browar] [browar] [browar] [browar]
[browar] [browar] [browar] [browar] [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1