Home
FAQ
Szukaj
Użytkownicy
Grupy
Galerie
Rejestracja
Zaloguj
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Szlomber Naplet
|
Wysłany:
Czw 18:08, 26 Lis 2009 |
|
|
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 .
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.
Post został pochwalony 0 razy
Ostatnio zmieniony przez Szlomber dnia Czw 18:17, 26 Lis 2009, w całości zmieniany 5 razy |
|
 |
|
 |
Szlomber Naplet
|
Wysłany:
Pią 11:58, 27 Lis 2009 |
|
|
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::
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 |
|
 |
Szlomber Naplet
|
Wysłany:
Sob 14:39, 12 Gru 2009 |
|
|
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 |
|
 |
|
|
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
|
|