Poziom 1 - Lekcja 8
Ostatnio zmodyfikowano 2018-04-04 22:03
Cicha_Woda Temat założony przez niniejszego użytkownika |
Poziom 1 - Lekcja 8 » 2018-03-30 18:11:28 Witam wszystkich. To mój pierwszy post na tym forum, bo dopiero się uczę i chciałbym prosić o waszą pomoc, bo o ile zrobiłem zadanie domowe: Tu mój kod: #include <iostream> int main() { int nieznana; nieznana = 123; std::cout << "Liczba = " << nieznana << std::endl; return 0; }
To nie bardzo wiem, dlaczego nie zadział fragment kodu "char" i "unsigned char" tylko dopiero od "wchar_t" i wyżej Przed to proszę bardziej doświadczonych o wyjaśnienie dlaczego tak jest i czy to nie ma związku z ilością bajtów. Pozdrawiam |
|
latajacaryba |
» 2018-03-30 19:16:33 Co masz na myśli: dlaczego nie zadział fragment kodu "char" i "unsigned char" tylko dopiero od "wchar_t"? Że nie działa jak zamienisz w podanym przez Ciebie kodzie int na char? PS. char najczęściej domyślnie jest unsigned, jeśli chcesz przechowywać w nim liczby ujemne wpisz signed char PPS. Ok, domyślam się, o co Ci chodzi, zamiast 123 masz jakiś znak, a dokładnie znak '{'. Typ char jest używany do przechowywania znaków alfanumerycznych. Każdy taki znak ma swój odpowiednik w liczbie, np. znak 'a' jest przechowywany jako wartość 97 natomiast duże a 'A' to 65. Te liczby odpowiadające znakom są zawarte w tzw. tablicy ASCII. Poczytaj sobie o niej. Jeśli chcesz wyświetlić liczbe, zrób tak: char znak = 65;
std::cout <<( int ) znak;
|
|
Cicha_Woda Temat założony przez niniejszego użytkownika |
» 2018-04-04 19:35:56 Dziękuje bardzo za wyjaśnienie tematu i pozdrawiam :) |
|
jankowalski25 |
» 2018-04-04 20:37:18 char najczęściej domyślnie jest unsigned |
char ma niezdefiniowaną "znakowość". char , signed char i unsigned char to trzy różne typy danych. Typ char jest używany do przechowywania znaków alfanumerycznych |
Nie musi tak być, nadaje się do trzymania czegokolwiek. W przeciwieństwie do niektórych języków, char w C++ zajmuje zawsze dokładnie jeden bajt, więc można całkiem wygodnie wkładać tam dowolne dane binarne, na przykład tak: const char * dane = "\xba\xdc\x0d\xed..."; . Zapis \x pozwala na zignorowanie "znakowości" i wstawienie odpowiedniej wartości szesnastkowej. |
|
latajacaryba |
» 2018-04-04 22:03:14 @jankowalski25 Tego pierwszego to nie wiedziałem, gdzieś wyczytałem kiedyś taką informacje i nie podejrzewałem, że jest niepoprawna, więc dzięki za sprostowanie.
|
|
« 1 » |