Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Poziom 1 - Lekcja 8

Ostatnio zmodyfikowano 2018-04-04 22:03
Autor Wiadomość
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:
C/C++
#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
P-170362
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:

C/C++
char znak = 65;

std::cout <<( int ) znak;
P-170367
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 :)
P-170456
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.
P-170457
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.
P-170459
« 1 »
  Strona 1 z 1