Cześć, mam pewien problem z którym nie mogę się uporać, a więc:
Mam char* który wskazuje na pewien adres w pamięci, który zawiera tekst, tekst powinien wyglądać tak:
"Mały" jednak za nic nie mogę zgadnąć co to za kodowanie, albo jak to odwrócić. Gdy rzutuje tego chara na inta otrzymuję liczbę -77, z pozoru wydaję się całkowicie przypadkowe, ale... gdy zamienimy -77 z dec na hex otrzymamy "FFFFFFFFFFFFFFB3" interesujące są dwie ostatnie
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@morsisko: KrzaQ2 ma rację. Masz chara, który binarnie wygląda tak:
10110011.
Signed char powie, że to -77, unsigned powie, że to 179 (a w ISO8859-2 to właśnie 'ł').
Castowanie na signed int spowodowało, że -77 jest teraz zapisane na większej ilości bitów:
11111111 1111111 11111111 10110011, ale to nadal -77. Trzeba było albo wypisać jako %u w printfie.

Nie dopisuj żadnych "F"ów ani nic. Dobrze działa jak jest.
  • Odpowiedz
Nie jestem specjalistą od Qt, więc nie pomogę dokładnie, ale powiem Ci, co się wyprawia wg mnie: masz tekst w kodowaniu ISO-8859-2 lub Windows-1250, patrząc po tym 'ł'. Qt myśli, że to tekst zakodowany w UTF-8, co znaczy, że znaki 0-127 są takie same niezależnie od kodowania. Dochodzi do bajtu z tym nieszczęsnym 'ł' i natrafia na problem, bo nie potrafi go odpowiednio wyświetlić. Poczytaj tutaj, jak działa UTF8: https://pl.wikipedia.org/wiki/UTF-8

To, co bym
  • Odpowiedz
Zadanie ze spoja brzmi tak:

Twoim zadaniem jest dodać wszystkie liczby całkowite podane na wejściu.

Wejście:
W pierwszym wierszu znajduje się liczba t testów (0 < t < 100) Każdy test opisany jest w następujący sposób. W pierwszym wierszu dana jest liczba n - liczba liczb do zsumowania. Następnie podanych jest n liczb pooddzielanych spacją.
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Treść przeznaczona dla osób powyżej 18 roku życia...
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #cpp Dev c++ Potrzebuje zrobić program, ale nie do końca ogarniam jak to rozwiązać. Mam projekt, dodałem do niego plik .exe (dla przykładu calc.exe). Teraz z poziomu pisanego programu chciałbym uruchomić calc.exe, ale nie z systemowej ścieżki, a z wnętrza mojego programu. Mam już napisaną funkcję tworzącą nowy process. Jest ok jak podaję ścieżkę w systemie, ale nie wiem jak dołączyć calc.exe i podać jego lokalizację z
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@r3kc4H: nie znam Dev C++, tak w ogóle to polecam zmienić IDE na jakieś współczesne. Po dodaniu exeka do zasobów dostaniesz się do jego danych bez problemu za pomocą dosłownie kilku funkcji np. od WinAPI.
  • Odpowiedz
Czemu taka funkcja

void uart_printH(uint8_t val)
{
const char* tab = "012345679ABCDEF";
uint8_t buf[3];
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#programowanie #qt #cpp

Małe pytanie odnośnie tego co tak właściwie Qt robi podczas emitowania rzeczy jako sygnały.

Mam sobie takiego emita:

emit
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@KrzaQ2: Przejrzałem kod Qt5.6 na szybko i masz rację, w przypadku DirectConnection i BlockingQueuedConnection przekazywane są tylko wskaźniki, a w przypadku QueuedConnection używane jest QMetaType::create do stworzenia kopii każdego z argumentów.
  • Odpowiedz
#cpp #programowanie

Mirki, mam stringa z zapytaniem SQL:

(...)and p.pat_out_of_subdistrict = 0 and p.pat_right_type LIKE '\t\t\t\t\t\t\n%\t\t\t\t\t\t\t' and (current_date::DATE-p.pat_birthday::DATE)/365 between 0 and 90(...)
Jest jakaś metoda w bibliotece standardowej albo w booście, która wycinałaby mi wszystkie tabulacje i znaki końca linii, która nie zostawiałaby spacji? Próbowałem tak:
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@deadmoose: 90% narzędzi z visuala i tak na początek nie będziesz używał, Code::Blocks jakos nie lubię, ale kto wie, może Ci przypadnie do gustu. Dorzucę jeszcze Eclipse przydatne, jak później chciałbyś zacząć swoja przygodę z javą
  • Odpowiedz
@deadmoose: Nie jestem fanem MS, ale sugeruję, żebyś zaczął od Visual Studio Community 2015 i już na początku zaznajomił się z dobrym jakościowo IDE (z dużym naciskiem na interfejs debuggera, który w VS jest solidny). Code::Blocks jest archaiczne i toporne, zamiast niego lepiej użyć QtCreatora lub CLiona, ale rozpoczęcie pracy z tymi dwoma może być nieco trudniejsze niż w przypadku VS, bo wymagają wiedzy na temat make i toolchainów oraz
  • Odpowiedz
#programowanie #qt #cpp

Da się dodać do siebie kilka QByteArrayów? Chcę po prostu stackować jeden za drugim, tak ze 20 razy zanim pójdzie jeden duży byte array. Wynika to z tego, że QAudioProbe ma na nagrywaniu z recordera bufor 40 ms (ale bym z-----ł bułę debilowi, który nie wprowadził do QAudioProbe możliwości wyboru rozmiaru bufora, tylko jest dobierana w jakiś niewiadomy sposób) i to jest po
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine: Tak na szybko patrząc QByteArray posiada wszystkie potrzebne funkcje, czyli append oraz reserve. Wystarczy ich użyć, a dodatkowo polecam czytać dokumentację - to nie boli.
  • Odpowiedz
@CichyGlosZTyluGlowy Obczaj QVariantList . To jest tylko typedef na QList i niestety nie robi dokładnie tego co ty chcesz ale standardowo w Qt to stosuje się. Pytanie czy można do QVariant wpakować QVector, w Qt5 chyba automagicznie tak, jeżeli T można wepchnąć do QVarianta.
Niestety w Qt5 QVariant jest nie mutowany więc nie dostaniesz referencji do jego zawartości, czyli ostatnich dwóch linijek nie da się w ten sposób zakodzić, musisz dwa
  • Odpowiedz
#programowanie #qt #cpp

Mirki, orientujecie się może jak i czy się da w ogóle wysłać przez QTcpSocket wektor danych? Ogółem obiekt? W sensie daję mu wektor który ma 100 intów czy czegokolwiek i mu mówię, żeby mi go po prostu wysłał taki jaki jest a ktoś po stronie klienta spodziewa się tego wektora o takim rozmiarze? Czy muszę mu serializować to i odczytywać po prostu tego
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Khaine:
1. Transmisja po TCP odbywa się porcjami, i druga strona musi cały przekaz sobie "poskładać" - dlatego aby to było możliwe podałem Ci wyżej prosty sposób: najpierw wysyłasz ilość przesyłanych danych, a dopiero potem same dane binarne.

2. W std::vector jest możliwy bezpośredni dostęp do poszczególnych elementów sekwencyjnie, nawet z wykorzystaniem arytmetyki wskaźników. link, dysponując więc wskaźnikiem na pierwszy element wektora (metoda data()) masz dostęp w zasadzie do
  • Odpowiedz
Mirki: uczę się #jezykc i chciałem się trochę pobawić wskaźnikami i referencjami. W przykładzie który wklejam poniżej nie wiem co oznacza zawartość " &y " wewnątrz funkcji "line", czy to jakaś dereferencja referencji? :O . Z czego to wynika? Czy jest tworzona jakaś nowa kopia adresu? Druga rzecz, dlaczego nie mogę w funkcji main wyświetlić " *y " ? W komentarzach zapisałem to co wyświetla mi funkcja printf #cpp
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@FantaZy:
double x = 3.0;
double z = 4.444;
double* y = &x // teraz printf( "%f", *y); pokaże 3.0;
y = &z // teraz printf( "%f", *y); pokaże 4.444;
*y = 1.11; // teraz printf( "%f", *y);
  • Odpowiedz
Jakaś lektura o C++11 i ew. C++14 by uzupełnić wiedzę z #cpp ? Moja wiedza w większości opiera się na książce Bruce Eckela "Thinking in C++" a to trochę stara lektura. Co byście polecili?
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki programysty. Która wersja bardziej Wam leży i dlaczego?
1.
std::vector v;
using vIter = decltype(v)::iterator;
void f(vIter it){}
2.
  • 16
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@simia: Ƶadna. Znasz typ, decltype jest zbędne. Ewentualnie using/typedef dla późniejszego łatwiejszego refaktoringu, ale ogółem polecałbym szablony.
  • Odpowiedz