Forum We are clever Strona Główna
 Home    FAQ    Szukaj    Użytkownicy    Grupy    Galerie
 Rejestracja    Zaloguj
Zrobiłem bląd

 
Napisz nowy temat   Odpowiedz do tematu    Forum We are clever Strona Główna -> Programowanie
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Szlomber
Naplet
PostWysłany: Czw 18:08, 26 Lis 2009 Powrót do góry


Dołączył: 14 Wrz 2007

Posty: 516
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5

Właśnie wrzucamy kody źródłowe z błędami(celowymi lub przypadkowymi). Inni tych errorów szukają i naprawiają kodzik Smile.

To ja zacznę, oczywiście błąd celowy(przypadkowe mi się nie zdarzają xD).
Dodam że skompilować się to udało bez najmniejszego problemu.

Program wykonuje się u mnie tak::
Kod:

dd3s@dd3s-angie:~/Desktop/hacking$ ./a.out
czarny ?��x?��u�ܷ��


Zamiast oczekiwanego::
Kod:

dd3s@dd3s-angie:~/Desktop/hacking$ ./a.out
czarny


Kod:
/*
coded
   by 0xdd3s
*/

#include <iostream>

int main()
{
   using namespace std;

   char kolor[6] = {'c', 'z', 'a', 'r', 'n', 'y'};

      cout << kolor
              << endl;

   return 0;

}


Prośim też napisać dlaczego dzieje się tak a nie inaczej. Twisted Evil


Post został pochwalony 0 razy

Ostatnio zmieniony przez Szlomber dnia Czw 18:17, 26 Lis 2009, w całości zmieniany 5 razy
Zobacz profil autora
Szlomber
Naplet
PostWysłany: Pią 11:58, 27 Lis 2009 Powrót do góry


Dołączył: 14 Wrz 2007

Posty: 516
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5

Tak też myślałem... nikt nie był w stanie rozwiązać tej zagadki. To świadczy o 0 wiedzy na temat programowania. Co poniektórzy znają:: for'y, switch'e, if'y i myślą że już znają podstawy języka. Wg mnie to jest g0wno nie podstawa. Nie uważam się za jakiegoś pro or sth ale staram się czytać 'fachową literaturę' i poznać język.[WoW co nie?] Dobra xD, teraz rozwiązanie tego arcytrudnego zadanka::

Ta deklaracja::
Kod:
 char kolor[6] = {'c', 'z', 'a', 'r', 'n', 'y'};

Jest jak najbardziej poprawna.

Z tym jest chyba cuś nie tak::
Kod:
cout << kolor

Do tekstu dołączony został zupełnie przypadkowy ciąg znaków. Pytałem się WHY?
Otóż poprawny ciąg znaków w języku C++ musi być zakończony znakiem zerowym(/null jak kto woli), czyli bajtem o wartości ZERO. Po tym bajcie wszystkie funkcje rozpoznają koniec ciągu. Kiedy ciąg znaków wprowadzony jest do kodu w postaci ciągu znaków ujętego w znaki cudzysłowiu, znak zero dodawany jest automatycznie. Jednak moja tablica zawiera tylko te znaki, które do niej wpisałem. Jeśli to coś ma być gdzieś wykorzystane[ma działać], to nie należy modyfikować instrukcji związanej z cout'em ale deklarację tablicy. Czyli::

Kod:
 char kolor[7] = {'c', 'z', 'a', 'r', 'n', 'y', 0};


Tutaj chodzi o poprawieniu błędu a nie napisanie 'programu' od nowa, dającego wynik bez błędów. W przeciwnym wypadku rozwiązaniem może być nawet sam cout wyrzucający napisek 'czarny'. Nie o to kaman, nie o to kaman. [karolku xD]


Post został pochwalony 0 razy

Ostatnio zmieniony przez Szlomber dnia Pią 12:07, 27 Lis 2009, w całości zmieniany 3 razy
Zobacz profil autora
Szlomber
Naplet
PostWysłany: Sob 14:39, 12 Gru 2009 Powrót do góry


Dołączył: 14 Wrz 2007

Posty: 516
Przeczytał: 0 tematów

Pomógł: 4 razy
Ostrzeżeń: 0/5

Deklaracja może wyglądać też inaczej. Ot co::
Kod:

char kolor[] = {'c', 'z', 'a', 'r', 'n', 'y', 0};    //nie zapisałem rozmiaru tablicy czyli policzy to kompilator
//tudzież
char kolor[7] = "Czarny";
//tudzież
char kolor[] = "Czarny";


Post został pochwalony 0 razy
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum We are clever Strona Główna -> Programowanie Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB :: phore theme by Kisioł. Bearshare