Zapis i odczyt pliku , rysowanie.

Odpowiedz Nowy wątek
2011-08-24 01:18
0

Podczas nauki pisania (c++) przychodzi mi do głowy wiele pomysłów ale z powodu mojej niewiedzy nie moge ich rozwiązać, oczywiście również szukając pomocy w internecie, postanowiłem dołączyć do forum i tu pytać :)

Tak więc:

  1. Tworząc dla przykładu tablice np. książkę telefoniczną , chcę aby wszystkie dane wpisywane zostaly zapisyane do pliku a przy uruchamianiu programu odczytywane z niego, a nie kasowane za każdym uruchomieniem.
    W necie odnalazłem coś takiego ;
    ofstream plik("Tablica.txt") ;                  
    plik <<imie;     
    plik.close() ; 

ale niestety to nie to czego potrzebuje;

  1. Chciałbym napisać program który miałby narysować dany kształt(podając ew. współrzędne każdego punktu) i nie będzie to regularna figura (znalazłem wiele informacji na forach ale dotyczących np. rysowania prostokątów)

  2. Czy jest możliwość uruchomienia usługi w Windowsie XP "klient DHCP" po przez konsole?Jeśli tak to jakim poleceniem? (również tyczy się to jednego z pomysłów)

Proszę o wyrozumiałość (pierwszy mój post):)

edytowany 1x, ostatnio: madmike, 2011-08-24 01:21
TAGUJ wątki nazwą języka/środowiska... - madmike 2011-08-24 01:21

Pozostało 580 znaków

2011-08-24 01:22
Kumashiro
0
Shamson napisał(a)

ale niestety to nie to czego potrzebuje;

Ale czego w takim razie potrzebujesz?
Dane w plikach można zapisać na wiele sposobów. Zserializować do jakiegoś standardowego formatu (XML, JSON, ...), zaprojektować swój własny format tekstowy lub binarny itp. Musisz uściślić czego oczekujesz.

Pozostało 580 znaków

2011-08-24 01:35
0
Kumashiro napisał(a)
Shamson napisał(a)

ale niestety to nie to czego potrzebuje;

Ale czego w takim razie potrzebujesz?
Dane w plikach można zapisać na wiele sposobów. Zserializować do jakiegoś standardowego formatu (XML, JSON, ...), zaprojektować swój własny format tekstowy lub binarny itp. Musisz uściślić czego oczekujesz.

Tu nie chodzi nawet o sam format, tylko o sposób zapisu i odczytu z pliku. Jeśli program uruchomię i podam dane zostaną one zapisane w pliku póki co jest OK ale przy ponownym uruchomieniu dane zapisane tam zostają usunięte. W jaki sposób zabezpieczyć te dane, aby program sprawdzał ewentualną zawartość, żeby nie tworzył na nowo tego pliku, aby plik raz utworzony nie został wymazany przy kolejnym uruchomieniu programu

edytowany 1x, ostatnio: Shamson, 2011-08-24 01:36

Pozostało 580 znaków

2011-08-24 01:43
Kumashiro
2

Nie rzuciłeś kodem, więc strzelam że problemem jest tryb otwarcia pliku. Kiedy chcesz go odczytać, otwierasz go do zapisu i plik jest "ucinany" przy samym początku. Pokakod, to będzie można coś powiedzieć.

Pozostało 580 znaków

2011-08-24 02:23
0

Jeśli chodzi o sam kod to może zadziwie ale poki co go nie ma bo pomysl jakis czas umarl i przypomnialo mi sie o tym a wczesniej czy pozniej musze sie nauczyc, pisalem na szybko żeby sprawdzić czy faktycznie masz racje, no i mialeś błąd krył się w trybie otwierania pliku a mianowicie na samym początku z tego co pamiętam mój program działał tak że tworzył plik i wpisywał do niego dane i tak w kółko, naprowadziłeś mnie idealnie :) Tyle że przy wpisywaniu treści, dlaczego jeśli moja zmienna "imie" po wprowadzeniu zostaje ucięta po znaku spacji, tj wyświetla się komunikat podaj imię i jeśli użyje spacji (Grin Go ) to do pliku zostanie zapisany tylko pierwszy człon "Grin" ?

int main()
{
string imie;
fstream plik;
 
plik.open( "Tablica.txt", ios::app | ios::out );
if( plik.good() == true )   
           {
            cout<<"podaj imie: ";
            cin>>imie;
            plik <<imie;  
            plik.close();
            }
return( 0 );
}
 
edytowany 3x, ostatnio: Shamson, 2011-08-24 02:25

Pozostało 580 znaków

2011-08-24 03:27
2

Bo używasz cin, odczytuje to co istnieje przed białym znakiem. Zamiast cin użyj
getline(cin, imie)

edytowany 1x, ostatnio: factoradic, 2011-08-24 03:34

Pozostało 580 znaków

2011-08-24 08:57
0

Dzięki za pomoc :) o to chodziło :)

A może znacie odpowiedzi,podpowiedzi co do mojego drugiego lub trzeciego pytania?

Pozostało 580 znaków

2011-08-24 11:20
0
  1. Chciałbym napisać program który miałby narysować dany kształt(podając ew. współrzędne każdego punktu) i nie będzie to regularna figura (znalazłem wiele informacji na forach ale dotyczących np. rysowania prostokątów)

Jeżeli w konsoli, to będzie trochę roboty.
Jeżeli nie, to każdy porządniejszy silnik graficzny powinien mieć możliwość rysowania nieregularnych kształtów.


Pozostało 580 znaków

2011-08-24 11:32
0

chodzi o konsole :) (myslałem aby aby podawać wspolrzedne danego punktu który ma sie zapalic,zmienic kolor , zaznaczyc jak tam kto woli , ale nie mam pojecia jak :( )
A jestem zielony i potrzebuje chociaż jakichś poszlak co bym mógł wy googlować pozniej sam.

Pozostało 580 znaków

2011-08-24 19:56
0

Powiem ci że nie jest to czego szukam, ale tez zagłębie się w to bo zawsze jest to jakaś alternatywa :) Dzięki :)

Pozostało 580 znaków

2011-08-24 21:42
0

(myslałem aby aby podawać wspolrzedne danego punktu który ma sie zapalic,zmienic kolor , zaznaczyc jak tam kto woli , ale nie mam pojecia jak

Słówko, którego potrzebujesz, to

gotoxy()

.
Jest parę implementacji, ja kojarzę, że chyba conio.h daje coś takiego (TAK, wiem, conio.h jest niestandardowe, złe i brzydkie), ponadto widziałem tez bibliotekę conio2 (lub podobnie), która naprawiała kilka niedogodności z pierwszej wersji, oraz coś co było przenośne między systemami. Jak będziesz miało gotoxy, to będziesz mógł trzaskać nim literki/cyferki lub po prostu wypełnienie danego miejsca (znaczy się wypisanie prostokącika zajmującego całe pole, kodu znaku nie pomnę) standardowym kolorem tekstu w konsoli. Jeśli chciałbyś użyć kolorków, to musisz znaleźć jakąś dodatkową bibliotekę do tego.

PS - tu masz najprostsze gotoxy na bazie WinAPI - http://www.edu.godula.com/?zo=cpp_faqgotoxy

PS2 - A tu masz bibliotekę newconio.h, o którą mi chodziło na początku psota. Zrobiona przez nauczyciela i uczniów z tarnowskiego I liceum, http://edu.i-lo.tarnow.pl/inf/prg/008_projekty/0002.php
W ogóle polecam ich portal, początkujący się bardzo ucieszy przerabiając jego zawartość.

edytowany 1x, ostatnio: Jadeszek, 2011-08-24 21:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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