Witaj problem pewnie jest z drugą pętlą for(i=4; i>=0; i--) {}; Jest tak że masz post inkrementację i gdy i = 1 po wykonaniu zrobi się 0 i sprawdza ponownie czy i >=0 i co i jest prawdziwe kolejny raz i co zrobi następnie zrobi 255 co i znowu warunek jest prawdziwy. Wiesz nie wiem jakiego typu jest twój char co jest domyślnie czy jest bezznakowy...
Czy aby przypadkiem w typie char nie zostaje zakazana wartość 0x00? Chciałbym stworzyć ciąg z dowolną zawartością, w tym też 0x00. Czy może ten ostatni bajt jest brany pod uwagę jedynie przez funkcje operujące na ciągach znakowych? To Ty decydujesz co znajduje się w komórce tablicy, ale jeśli to jest 0x00, to niektóre standardowe funkcje wykorzystają...
Przyjrzałem się funkcji "strtok2()" i wniosek mam taki, że nie nadaje się ona do Twojego programu. W funkcji "odczyt_IMEI" potrzebujesz odebrać IMEI, które jest zawarte przed napisem "OK". Możesz to zrealizować w taki sposób (przenieś do siebie tylko funkcję "odczyt_IMEI"): [syntax=c]#include <iostream> #include <string.h> using namespace...
Tak przy okazji opinia Linusa: aa tiaa, ale to nie problem, zawsze po wyjściu z niej wystarczy dać : desc Dodano po 8 AD.1. zawsze, końcowe zero jest nieodłącznym elementem c stringów, więc słowo 'Ala' będzie miało cztery znaki. "Jeśli mam wyświetlacz 2x16 i chcę zapisać pełne 16 znaków w wierszu, to robię tablicę 16 bajtów, czy 17" - char bufor_1...
Ja tu nie widzę błędów i kompiluje pierwszym lepszym online compilatorem. Sprawdź w ustawieniach IDE czy masz dobra ścieżkę do kompilatora
W indeksie tablicy pomyliłeś kolumny z wierszami. Zdefiniowałeś tablicę zawierającą 20 wierszy, po 5 znaków każdy, co oczywiście nie wystarcza do przechowywania tekstu zgodnie z określonym formatem.
Napisałem Ci, co źle robisz: int * dla stringów-NIE const char * Niestety nie mogę sobie poradzić z utworzeniem kolejnej tablicy dlaczego? Co stoi na przeszkodzie?
Co znaczy, że program przestaje działać? Puszcza dym, czy co? Nie uzyskujesz żadnej odpowiedzi na terminalu? Trudno powiedzieć jak jest zbudowane getc, może w nim jest problem. uart_puts na pewno wysyła łańcuchy, a nie pojedyncze znaki? Wysyłając przez terminal znaki być może końcone są one znakiem \n lub CR LF, których nie odbierasz. Być może to bruździ...
Druga rzecz strcmp() porownuje dlugosci i zwraca zero jesli dlugosci sa takie same. Akurat to warto porownac for'em Ja się nie chcę czepiać, ale kolego, jeżeli słabo znasz C, to sprawdzaj wszystko dwa razy, zanim komuś podpowiesz. strcmp() służy właśnie do porównywania napisów, a nie długości, więc tu akurat jest dobrze. Jeżeli chodzi o techniki strukturalne...
http://www.cplusplus.com/reference/cstri...
Zmieniając typ na int w oryginalnym kodzie przenosisz 40 bajtów (20*2) na każdy po 4 cykle (2 wczytanie, 2 zapis) = 160 cykli. To jest minimalny czas, poniżej którego nie da się zejść. Jeśli memcpy działa szybciej, znaczy nie kopiuje wszystkich 40 bajtów (tylko 20 bajtów - jeśli nie zmieniasz trzeciego argumentu w wywołaniu funkcji), sam kod to wtedy...
Witam! Po pierwsze co mi się narzuca to nie uwzględniasz znaku liczby. Widzę też, że cząstkowe wyniki składasz w tablicy typu int. Nie ma takiej potrzeby zwłaszcza, że nie znamy jej rozmiaru w momencie wywoływania funkcji. Proponuje takie rozwiązanie funkcji suma: [syntax=c]int suma(char *t) { int inword = 0;/* Ta zmienna sygnalizuje że jesteśmy w liczbie...
Jak kopiujesz dane binarne to memcpy() a nie strcpy(), choć tutaj równie dobrze można zrobić to na pętlach for(). Do zrobienia jak to określiłeś szufladek, deklaracja tablicy powinna wyglądać raczej tak: [syntax=c]char pamiecRx[105][8][/syntax] Możesz też zadeklarować tablicę o rozmiarze 8*105 i przesuwać się po niej.
Jeżeli zmienna2[0] == 0x31; //znak '1' zmienna2[1] == 0x32; //znak '2' //czyli liczba w ascii 12 to robisz zmienna1 = (zmienna2[0]-0x30)*10 + zmienna[1]-0x30; lub jeżeli zmienna2[0] ==1; zmienna1[1] ==2; //czyli liczba 12 to robisz zmienna1 = zmienna2[0]*10 + zmienna[1];
Ja nie za bardzo rozumiem, co ty chcesz zrobić? Z czym związane jest N? Dlaczego mnożysz N przez 2? Do czego to ma służyć. w dodatku jak n jest większe od 1 to program wiesza się, To akurat normalne, bo indeks tablicy "idzie w krzaki". Napisz dokładnie co chcesz zrobić. Przykładowe dane wejściowe Co ma być zrobione i co ma powstać. Inaczej nie dojdziemy...
a. bufor.length() NIE jest poprawny, jeśli 'bufor' jest zmienną typu char . Zmieniłeś typ zmiennej na string , dlatego Ci zadziałało. b. Jeśli zapis char *wskaznik = & bufor się kompiluje, to znaczy, że kompilator stosuje niejawny domysł zamieniający ten zapis na: char *wskaznik = &bufor . Przed napisaniem poprzedniego posta sprawdziłem kompilację...
output[x] = '\0'; Gdzie x to koniec tego co sam wpisałeś. Wypisywanie tekstu trwa do pierwszego napotkanego znaku o wartości 0. PS Ewentualnie przed wpisaniem czegokolwiek do zmiennej możesz zrobić: #include <cstring> memset(output, 0, 255);
Można to zrobić np. tak: #define MAXINDEX 15 // ostatni index w tablicy unsigned int m =0; for (int a=0;a<4;a++) { m <<= 8; m |= pBuf[MAXINDEX - a]; } Uwaga: w tym przykładzie domyślnie typ int jest 32 bitowy. Ogólnie nie jest to regułą!!
Myślę że tak zmienna=*((uint16_t*)&buf ... Proszę nie udzielać błędnych porad! Taki kod jest nieprzenośny, a na dodatek zadziała tylko dla tablicy liczb, a nie dla tablicy znaków. Można zrobić tak: int godzina = 10*(buf[0]-'0') + (buf[1]-'0'); Najprościej jednak będzie użyć biblioteki standardowej:...
Nie chcę Cię martwić (bo jeżeli Twój kod działa jak powinien to OK), ale to co robisz w pierwszym poście 1 i 3 nie jest sobie tożsame. Kod w #1 jest jak najbardziej prawidłowy. Typ char to dla platformy .NET tak naprawdę 16-to bitowa liczba z zakresu 0...65535 Więc taki kod: znak o kodzie ASCII = 4 . Do tego w zasadzie typ char został stworzony. Jeżeli...
To nie są znaki tylko raczej bajty - tablica nie tworzy napisu (znak o kodzie 0 zakończyłby napis i wyszłoby 254). Gotowej funkcji do konwersji dziesiętnej raczej nie będzie. Można albo skonwertować to na napis dodając do każdego elementu tablicy wartość '0' i potem skorzystać z funkcji char * => int (scanf, atoi lub wręcz strumienie c++), albo...
tylko i wyłącznie dzielenie i odejmowanie. Czyli [0]=liczba/100 (stałoprzecinkowe - pascal - div) [1]=liczba/10-[0]*100 itd. oczywiście do wykonania w pętli.
Potrzebne mi to od zabawy AVR+ENC28j60. Chciałbym umieszczać niestringopodobne treści strony www bezpośrednio w kodzie c. Mając jej jako tablice w progmem łatwo mi korzystać z posiadanych funkcji. No właśnie o tym piszę. To jak traktujesz dane to kwestia zapisu w programie. Konwertowanie danych binarnych na kod c, po to, żeby potem je przekonwertować...
if( jeżeli ma coś po przecinku while( dopóki ostatni znak to '0' remove usuń ostatni znak
1) Zapomnij, że istnieje coś takiego jak String... przynajmniej na Arduino. Używaj char (niestety z wszystkimi tego konsekwencjami). 2) Do trzymania komunikatów używaj pamięci FLASH, szkoda marnować RAM na każdy String w programie... czyli nie " Serial.print("Inicjowanie karty SD..."); " lecz " Serial.print(F("Inicjowanie karty SD...")); ".
[syntax=cpp]element.imie_nazwisko=(konwe... Prawdopodobnie chciałeś stworzyć nowe stringi, ale tego tak się nie robi. Użyłeś właśnie operatora „przecinka” (nawet mimo tego, że są tam nawiasy). To co jest powyżej ma taki sens: do element.imie_nazwisko przypisz rozmiar wskaźnika (czyli...
Sprawdzałem u mnie na symulatorze i wszystko ok. Dodałeś stdlib? Jakieś warningi?
a nie powinno być czasem: pgm_read_byte(&tablica[x] ... :?:
czyli poprostu try { name = Edit1->Text; } Gdzie name jest zadeklarowane w klasie jako AnsiString. Dokładnie właśnie tak - i tylko tak. Napisałem - zostaw te char*! Piszesz w C, czy C++?
a probowales tak T1 = atoi( (const char*)test ); ?
Owszem, można do wskaźników w C przypisywać arbitralne wartości: const unsigned char tablica = { 0x86, 0x88, 0x90 }; int i = 2; *((char *) tablica[i]) = 10; /* przypisanie wartości 10 pod adres z i-tego elementu tablicy */ char *ptr = (char *) tablica[1];
Oj! Rzeczywiście, przecież tablica cmds też była PROGMEM , a nie była właściwie odczytywana (a palnąłem, że „powinno działać” :oops: ). pytanie więc brzmi czy cmd? znajdują się w RAMie czy też w pamięci programu. Tylko w pamięci programu. Ciekawe dlaczego to składowanie tablicy w pamięci programu nie działa właściwie. Może chodzi o to, że...
Witam, char tekst1[10] = "cos"; char tekst2[4] = "kkk"; //pamiętaj, że ten łańcuch musi być o 1 dłuższy strcat(tekst1, tekst2); Tekst_T6963C(0, tekst1); Wszystko powinno działać.
Te siedem adresów, to adresy kolejnych komórek tablicy - wskaźniki zajmują po 8 bajtów, więc każdy jest o 8 większy. Adresy ciągów tekstowych możesz wyświetlić tak: [syntax=c] for(int i = 0; i < 7; i++) { cout << (void *)(titles[i]) << endl; } [/syntax]
Zapewne chodzi o to: [syntax=c] tablica.studenci[tablica.aktualny].imie = (char *)malloc(strlen(i) + 1); tablica.studenci[tablica.aktualny].nazwi... = (char *)malloc(strlen(n) + 1); [/syntax] Dodaj rzutowanie na "char *"
Tablica char str[3]; jest za mala (ma tylko 3 elementy) a Ty odwolujesz sie do 4.
Nawet nie miałby powodu zrobić inaczej z wielu powodów. Tablica wielowymiarowa jest tak naprawdę tablicą tablic, a więc wszelkie właściwości z tym związane są nadal prawdziwe. PS. Była wzmianka o stringu. Trzymanie ich w ten sposób mija się często z optymalnym wykorzystaniem pamięci.
Deklaracje - rzecz jasna - pominięte. [syntax=c] i = 3; while(liczba) { tab[i--] = '0' + liczba % 10; liczba /= 10; } [/syntax]
Dlaczego nie działa rzutowanie tego typu ? A mógłbyś wyjaśnić, co znaczy nie działa? Bo zazwyczaj działa... [edit] Musisz tylko pamiętać, że kompilator jest uprawniony do wyrównywania ułożenia pól w strukturach w zależności od wymagań architektury procesora. Jest prawdopodobne, że pole wskaźnika payload zostanie przesunięte w pamięci (wyrównane) do...
WOW! Tylu herezji w jednym poście nie widziałem. znaki ansii, ascii W sumie wymyśliłem sobie to tak że biorę zmienną np a="12345" To nie jest zmienna tylko tablica charów potem w pętli dodaje do każdej liczby 48, na końcu składam tablicę w 1 chara i wysyłam na lcd j To jest najlepszy kawałek:) Juuumi!:) Anyway masz liczbę np: uint8_t a=129; To musisz...
jeśli a zadeklarowane jest jako tablica: char a[128]; to adresem danych w tej tablicy jest: - a - &a[0] &a to ... w sumie nie wiadomo co [; 4\/3!!
A mógł by ktoś podać kod dla tych współrzędnych? bo wiem jak wczytywać pojedyńcze znaki do tablicy ale już np takie cos jak 0.5489 nie wiem jak wczytac a tu jeszcze innna tablica do tego. Nie wiem jak wczytywać to tak jak by mialo rece i nogi bo takie cos to umiem ale nie wiem jak zrobic zeby wczytac to do float i zey wszystko bylo ladnie oddzielone...
Nie ma się co denerwować i nie wyśmiewam nikogo. Tylko napisałeś że ta tablica, np nr_danej0 jest tablicą liczb, z opisu transmisji wynika coś innego. Z kolei wklejona funkcja służy do odbierania, co z kolei działa pewnie dobrze. Pytanie tylko czy chcesz, aby funkcja ta była blokująca (czekała na dane) czy nie blokująca, tzn nie będzie blokowała programu...
Nie używam Keila ale coś takiego powinno wystarczyć [syntax=c]const unsigned char tablica[] = {dane}; const unsigned char *pointer pointer = tablica;[/syntax]
Zacznę od zera: czy możesz mi polecić co mogę sobie darmowo (znaczy w necie) poczytać ogólnie i o szczegółach, bo google zwraca masę na każdy temat - o różnej wartości, z błędami, nie do tego itp? Tyczasem kopię elkę i też jest różnie, nie wszystko co mi może być potrzebne jest, muszę się z kontekstu domyślać czemu tak a nie inaczej no i ogólnie brakuje...
Tu masz algorytm z książki Pana Sysło "Algorytmy": http://www.oeiizk.edu.pl/informa/rembeck... (na dole strony) pozdrawiam
W Arduino są funkcje do konwersji między tablicą char i String. Linki już miałeś podane do Arduino Reference, a tam na dole spis funkcji/metod z przykładami.
for (y=0;y<=10;y++) { printf ("%c",tab[y]); }
Oj chyba kolega część książki mówiącą o tablicach przekartkował. ;) [syntax=c]char we_love[] = "cookies!"; // kompilator sam obliczy rozmiar tablicy i skopiuje "cookies!" do niej. char highway_to[4] = "Hel"; // tutaj również tablica będzie kopią "Hel" const char* swiety = "Mikołaj"; // swiety to wskaźnik na const char, zawiera adres literału "Mikołaj",...
a jak zadeklarować tablicę o różnych typach zmiennych? (numery wierszy- int, wiersze - tablice char) Tablica struktur się kłania. Jak nie wiesz o co chodzi - to tu masz przykład: http://marek.piasecki.staff.iiar.pwr.wro...
chara tablica tablica chara progmem chara tablica atmega
denon soundbar ekspres piszczy gesty dłoni
regulacja drzwi przesuwnych grohe bateria
Lokalizacja impulsatora w skrzyni biegów Iveco Stralis Ekran dotykowy nie działa w ekspresie Simson