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...
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ą...
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?
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...
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.
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...
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.
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...
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...
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:...
http://www.cplusplus.com/reference/cstri...
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...
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];
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ę...
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...
if( jeżeli ma coś po przecinku while( dopóki ostatni znak to '0' remove usuń ostatni znak
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...
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...")); ".
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...
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ć...
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.
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++?
[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] ... :?:
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];
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ć.
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...
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...
Tablica char str[3]; jest za mala (ma tylko 3 elementy) a Ty odwolujesz sie do 4.
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!!
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]
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]); }
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...
Nie używam Keila ale coś takiego powinno wystarczyć [syntax=c]const unsigned char tablica[] = {dane}; const unsigned char *pointer pointer = tablica;[/syntax]
Tu masz algorytm z książki Pana Sysło "Algorytmy": http://www.oeiizk.edu.pl/informa/rembeck... (na dole strony) pozdrawiam
Określenie "nie działa" jest dość ogólnikowe..nie kompiluje się?jeśli tak, z jakimi błędami? System przyjmuje w argumencie tablicę char. nie wystarczy stworzyć pomocniczej zmiennej typu string, a w wywołaniu użyć: zmienna.c_str()
Coś chyba źle robie... Tak , nie myślisz ;) Na 100% , argumentem dla lcd_puts jest wskaźnik na (tablicę)char , a i ostatni argument w dtostrf , to też ten sam typ ;) Piotrek
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",...
to skoro padła odpowiedz jak poradzić sobie z problemem to powiem co poszło nie tak. w językach kompilowanych, na przykład C oprócz zwykłej tablicy istnieje także statyczna czysta tablica. [syntax=c]const char tablica[liczba][/syntax] gdzie liczba to naprzykład [syntax=c]#define liczba 100[/syntax] podczas przejścia preprocesora jak kompilator widzi...
Problemem jest char *cmd[]; - to oznacza tablicę wskaźników na char, a nie wskaźnik na char. A skoro tablica o nieznanej liczbie elementów to wszystko co masz po przecinku to kolejne elementy tej tablicy. Czyli usuwasz [] lub nazywasz pola, np. .ptrF=.
W ten sposób wypełniasz tablicę jakimiś znakami kontrolnymi, a nie kodami cyfr chyba, że o to chodziło. Poza tym dla liczb mniejszych od 999, będą z "przodu" '\0'. Potrzebuje to do zapisania większej liczby od 255 w EEPROM. Czemu nie użyjesz EEPROM.put()? :)
Wystarczy ze napiszesz unsigned char string[5]; .... int main(void) { string = "Tekst"; string[5] = 0; } ... ... a podczas kompilacji zobaczysz pięknego ERROR-a ;) Wyłażenie "poza string" (string ... #include <string.h> char string[6]; char strptr *; .... int main(void) { strptr...
Zmień: [syntax=cpp]char remoteFile[20] = adres;[/syntax] na: [syntax=cpp]char *remoteFile = &adres[0];[/syntax] A na przyszłość poczytaj troszkę o konwersji typów, zmianie string na char (np. tutaj: [url=http://stackoverflow.com/questions/... to char*, lub zmodyfikuj funkcję odczytującą adres...
Witam. Mam taki oto nieskomplikowany kod: [syntax=c] #include <avr/io.h> #include <stdio.h> #include <stdint.h> #include <util/delay.h> #include "MyLibs/NokiaLcd.h" #define BAUDRATE 9600 #define UBRR_VALUE (((F_CPU / (BAUDRATE * 16UL))) - 1) #define d_RECEIVE_DATA_COMPLETE !(UCSR0A&(1<<RXC0)) void USART_INITIALIZATION(void);...
Otóż nie - to nie musi być tablica char-ów - o ile ma to być zrobione w C++! W C++ wszystko jest łatwiejsze: string imie; cout << "Wpisz imie: "; cin >> imie; if( imie == "Kuba" ){ cout << "Kuba, co z ciebie za facet!\n"; }else{ if( imie[imie.size()] == 'a'...
atom1477, tak wlasnie problemem jest tutaj tablica ! :) tmf, dziekuje tez to wyliczylem i chodzilo mi wlasnie o to gdzie trafia tablica bo wiedzialem ze problemem jest jej wielkosc ! :) Wiec problem rozwiazany dzieki ! :)
W zasadzie tak nie należy robić. Dwie gwiazdki obok siebie to już jest podejrzane, a le trzy.... ;) Ale jeżeli chodzi tylko o gimnastykę z językiem C, to trzeba to zrobić tak: Dodano po 28 Tak, taka jest składania. Zmienna tablica wewnątrz funkcji funkcja() jest wskaźnikiem na zmienną tablica z funkcji main() . Trochę mylące jest użycie tej samej nazwy...
Najpierw scanf() ale do łańcucha znaków (tablica char), a potem na tym łańcuchu porównanie z "n" i jeżeli się zgadza, to wyjście, a jeżeli nie, to można użyć konwersji z łańcucha na liczbę. Na przykład za pomocą atoi() z stdlib.h , z tym że tego nie ma chyba w ANSI C, ale jest w ISO. Można też od biedy zrobić sscanf() na tym łańcuchu, ale to mniej wydajne.
OK. Chyba działa :) Zapomniałem, że bufor ekranu konsoli cmd nie objął mi wszystkich liczb, a plik jest bardzo długi. Wyświetla mi teraz te wartości w formie dziesiętnej po prostu. Ostatnia cyfra z wyjściowego listingu odpowiada dziesiętnie szesnastkowej wartości. Dzięki wielkie Vee! :)
Mam problem z tablicą char a dokładnie wyskakuje mi błąd: error: incompatible types in assignment i wskazuje mi na linie z buforami. Poniżej kod: char bufor1[16],bufor2[16]; void interpretacja() { for(int i=0;i<16;i++) bufor1[i]=0x00;//czyszczenie buforow for(int i=0;i<16;i++) bufor2[i]=0x00;//...
Całej zawartości tablicy funkcja nie może zwrócić. Jedynie wskaźnik do tablicy. Ale jeśli tablica jest tworzona wewnątrz funkcji to przy wyjściu z tej funkcji tablica jest niszczona, więc nie powinno się do niej(tej tablicy) już odwoływać. (chyba że to tablica statyczna) Jedynie możesz jako parametr funkcji pobrać wskaźnik do jakiejś globalnej tablicy...
Nie wiem gdzie jest chaczyk/problem ... dla mnie jest to banalnie proste. #include <stdio.h> #include <stdlib.h> int main() { static char cmd[ 6 ] = { '$', '0', '0', 'F', 0x0d }; int i; for ( i = 0 ; i < 100; ++i ) { printf( "%03d. %4s\n", i, cmd ); ++cmd[ 2 ]; if (...
Przez UART przychodzą komendy 4 literowe, chyli forma tekstowa. Program powinien ją "zrozumieć" i wykonać przyporządkowany jej podprogram. Komend będzie kilkadziesiąt.
Wystarczy dodać zmienną int i wszystko zostanie obcięte do całkowitych liczb: int lcdint=DHT.temperature; lcd.println(lcdint); Dodaj to czyszczenie linii spacjami lub lcd.clear();. Znaki specjalne nie zawsze są w tym samym zestawie, można sobie zrobić pętle i wydrukować wszystkie, by sprawdzić co jest w pamięci wyświetlacza do dyspozycji, lub zrobić...
Możesz spróbować jeszcze tego (ale musisz dodać bibliotekę windows.h): CreateFile() zobacz http://msdn.microsoft.com/en-us/library/... Dodano po 1 Powiedz mi jeszcze, czy fflush() coś dało ?
Co robi ta linijka?[syntax=cpp]fflush(stdin);[/synt... Zadaj sobie również pytanie, co robi endl, którym strzelasz na lewo i prawo. ;) W ogóle to ten kod to jest mieszanka C i C++... W C++ masz takie ładne strumienie, którymi się tak różowiutko i przyjemnie pracuje z plikami, a wybierasz fopen i spółkę? ;) Później napiszę coś o samym programie, ale...
... Bzdury! Inicjalizacja tablicy w postaci char tablica[] = {'a', 'b', 0}; jest 100% poprawnym "napisem" w standardzie języka C - wartość zero (0, '\0') to zupełnie co innego niż znak zero ('0'); 4\/3!!
Cudów nie ma, pokaż kod.
A widziałeś akapit Example na stronie którą podałem?
Stwórz 3 elementową tablicę wskaźników na tablice; unsigned char PROGMEM *buzia = {buzia0,buzia1,buzia2}; a następnie przekazuj jakoś tak: lcd_send(pgm_read_byte((buzia[a])[][]); Kod poglądowy pewnie nie zadziała od razu :)
Raczej: [syntax=cpp]const char* tablica = "costam";[/syntax]W C++ string literals ("costam") są typu const char[n], a próba ich modyfikacji (np przez wskaźnik do nich) wykopie nas do świata niezdefiniowanego zachowania, nie mówiąc już o tym, że na nowszych kompilatorach nareszcie dostaje się przynajmniej ostrzeżenie za taki kod, więc... Po prostu dodaj...
Nie wiem co mi wczoraj było:P teraz spróbowałem jeszcze raz i działa z tym '\0'. Sorki nie było pytania ;P
Ciężko tu zaobserwować zmiane tych wartości ponieważ jest to program na do mikrokontrolera ATMEGA, wrzucam cały kod, może będziecie wiedzieć co tu jest źle. #define F_CPU 14.7456E6 //delay.h //na podstawie podanej czesotliwosci kwarcu obliczane beda opoznienia wystepujace w programie #include "pliki\io.h" #include "pliki\delay.h"...
Tablica: char InputBuffer[12]; zawiera łańcuch "w stylu c". Łańcuch taki powinien się kończyć znakiem bajtem o wartości 0. Możesz np. przed ponownym zapisem wstawić 0 do wszystkich komórek tablicy. Dwie uwagi: 1. trzeba to zrobić tak: InputBuffer[i]=0; a nie: InputBuffer[i]='0'; // w tym przypadku podstawiasz kod ascii znaku '0"; 2. Jeżeli tablica ma...
Pracowałem wówczas na ATmega162. Okazało się, że pewna seria '162 miała ten sam problem. Układ resetował się przy komunikacji UART. Temat zamykam.
Zamiana napisu na liczbę: sprintf : [url=http://pl.wikibooks.org/wiki/C/prin...
Zdaje się, że pominąłeś deklarację typu elementu tablicy jako char, czyli są inty. Więc ten napis chyba tam jest, tylko litery będą oddzielone zerami. Spróbuj dodać tam char, np. static const char test[] = {...} Nie było żadnych ostrzeżeń kompilatora w tej linijce? Druga opcja jest taka, że linker wyrzuca tą tablicę ze względu na brak odwołań, ale wtedy...
no fakt. tak uczynilem i jest ok. Z tego co czytalem wydawalo mi sie ze jak otwieram plik jako binarny to musze do niego zapisywac metodą putw. A tam wysylajac np 0x0a zapisywal sekwencje 0x0a, 0x00 0x00 0x00. Dzieki wielkie. Temat zamkniety:)
Tablice definiujesz tak: [syntax=c]char tablica[7][3]={"pn","wt","sr","cz","pt",... A używasz tak: [syntax=c]lcd_str(tablica[dnityg]); [/syntax]
użyj zmiennej typu tablicowego np: char napis[20] stworzy Ci napis o długości 20 znaków, obsługujesz go prawie jak stringa... napis = "to jest napis\0" należy panmiętać aby zawsze na ostatniej pozycji wpisywać znak '\0', to jest znacznik końca napisu.
Witam, potrzebuję Waszej pomocy, a mianowicie mam tablicę danych pomiarowych, w której znajduje się aktualnie 10 próbek pomiarowych char dane[10]={1,2,3,4,5,6,7,8,9,10} następnie potrzebuję przesunąć wszystkie elementy o 1 w prawo w tej tablicy (ostatni element odpada), następnie na pozycję dane[0] wpisać nową próbkę pomiarową. Napisałem coś takiego:...
witam Chce zrobic zabezpieczenie do mojego programu problem polega na tym ze nie wiem jak uruchomic zakodowana funkcje.W start mam zakodowane Application->CreateForm(__classid(TForm1... &Form1); oto fragment kodu char start[52]={0x41,0x70,0x70,0... 0x3e,0x43,0x72,0x65,0x61,0x74,0x65,0x46,...
Dawno nie programowełem w C++, ale na pierwszy rzut oka: - złe przekazanie tablicy jako argumentu funkcji, - funkcja nie przeszukuje całej tablicy (powinna być pętla) tylko sprawdza jeden element liczenie[rozm], ktorego zawartość jest nieokreślona (elementy tablicy indeksowane są od zera, więc ostatni element to byłoby liczenie[rozm-1] )
Generalnie potrzebuję tablicę char o zawartości 1 2 3 4 5 zmienić na long o wartości 12345. Próbowałem wynik = atol(dana); i dostaję głupoty A może trzeba mieć na końcu w tej tablicy char Dodano po 4 Niestety, AVR-GCC ma bardzo dużo ograniczeń a alternatywy dla niego nie ma, dlatego lepiej zrobić to na ARM, tam problemu nie ma. Albo na Intelu lub RISC.
char tablica[3200]; //... short int *tablica2 = (short int*)tablica;
Robisz tablice char 8x8 i uzupełniasz odpowiednimi znakami recznie, w 2 pętlach for sposobów jest dużo: palnsza[0][0]='O'; wyświetlasz cala tablice (2xfor) czekasz (poczytaj o Sleep() ) czyścisz konsole (np. system("cls") ) przesuwasz gońca i od nowa wyświetlasz itd.
Problemem jest to że wstawiając: [syntax=cpp]char alpha[255];[/syntax] nie działa mi program. Przy tablicy podanej jak w kodzie powyżej wszystko jest OK. Jak zmienie na 255 to nie daje mi się zaszyfrować, zdeszyfrować tekstu.
Jeśli chcesz korzystać z więcej niż jednej takiej struktury zmienne first i last jako zmienne są potrzebne. Fakt, że taki bufor z dużym prawdopodobieństwem będzie jeden sprawia, że mogą to być stałe. Tablicę zadeklarowałem w main, bo jest to kod testowy, napisany na PC , ale w µc faktycznie będzie to raczej zmienna statyczna o zasięgu plikowym....
Można to zrealizować w miarę prosto: typedef struct { const char* field_name; const char* field_format; unsigned dest_offset; } field_t; typedef struct { char okno[10]; char kolor[10]; char rodzaj[10]; } dom_t; const fields[] = { { "okno", "%s", offsetof(dom_t, okno)...
Po prostu zrób tak by sprawdzał np. if (c=='g') else if (c=='d') i to wystarczy by określi czy ma być z góry na dół (g) czy z dołu do góry (d),nie możesz porównywać używając znaku "=" (bo jeden do tego nie służy) lub używając dwóch liter w zmiennej mieszczącej 1 literkę, 'dg' jest bez sensu, albo 'd', albo "dg", a porównywania napisów nie robi się używając...
Witam, Otóż mam pytanie czy ktoś wie jak (czy) można rozwiązać taki problem. Mam urządzenie zewnętrzne, z którego UART-em zczytuję dane do tablicy char-ów. I niestety urządzonko wysyła wśród tych danych znaczniki NULL, które są interpretowane przez te urządzenia jako NOP a nie koniec stringa i przez to tracę wszystkie dane, które są za każdym NULL-em....
Marnowanie pamięci....
Coś zrobiłem nie tak? strcat(uzyt,PathFind); strcat(uzyt,"/places.sqlite\0&q... Nie widzę definicji uzyt, ale z wcześniejszych postów wróżę jest to obiekt klasy string, którego brutalnie nadpisałeś ciągiem znaków z ścieżki. Ciekawy jestem czy nie dostałeś ostrzeżeń podczas kompilacji, ponieważ funkcja strcat spodziewa się jako...
Można by zrobić tak, że zrobić tablicę char i zbierać na kolejnych pozycjach kolejne dane z uart do momentu zapełninia się tablicy lub pojawienia się 10 lub 13. Najpierw jednak warto sprawdzić czy / jak funkcja wyświetla taką ręcznie wypełnioną tablicę i czy po ostatnim znaku wymagane jest 0dec.
Zauważ, że tutaj: int ile_znakow = 0; unsigned char *cT1 = new unsigned char [ile_znakow]; unsigned char *cT2 = new unsigned char [ile_znakow]; alokujesz puste tablce! ile_znakow = z1 - pocz; // wyznacza długość i 1 tablicy cT1 // tutaj przypisuje odpowiednie fragmenty do dynamicznych tablic char // i konwertuję na int cT1[ile_znakow+1]...
ale jak już przy tym jesteśmy to rozumiem że ta operacja *(struktura.wsk) = ... zadziała tak jak chciałem? czyli podstawi wartość do zmiennej wskazywanej przez ten wskaźnik ??? tak a jeszcze przy okazji, gdyby ten wskaźnik był wskaźnikiem na jakąś tablicę i chciałbym go zwiększyć o N żeby wskazywał N-ty element tablicy, to hmmm mam to tak zapisać???...
Ok. Dzięki za pomoc.
bo kwestia kolumn i wierszy jest czysto umowna i kompilator nawet może mieć dowolność No nie. Nie ma dowolności.
Jesli te tablice maja taka sama strukture to prosciej do funkcji przekazac wskaznik do wlasciwej tablicy: uint8_t LCD_Char(int8_t mychr, uint8_t xPos, uint8_t yPos, char *tablica) i potem wywolywac: uint8_t LCD_Char(..., &tablica1[0]) lub uint8_t LCD_Char(..., &tablica2[0])
Zgaduję, że chodzi Ci o czytanie liczb z postaci znakowej. Jeśli dziesiętnie, to: liczba[i] = (cyfra[i << 1] - '0') * 10 + cyfra[(i << 1) + 1] - '0';
To jeszcze z kodu tymona. Rozumiem- ale nie mogę jeszcze zrozumieć tego: LCD_WriteText((char*)tab)... to jest kolego tzw nadgorliwość :) raz ze w epilogu została zadeklarowana tablica char tab[11] a wywołanie procedury LCD_WriteText bedzie tak samo skuteczne bez (char *) jak z tym. To by było słuszne gdyby tab z deklaracji i tab...
jak przekazać wartość do zmiennej zapisaną w tablicy. Wartości do obliczeń przechowuję w tablicy (char). Czy twoja tablica to : 1. tablica wskaźników do typu char Przykład tablicy: [syntax=c]char * tablica[]= { "123123123","1231234413","245875897345",... 2. tablica char-ów (tylko pojedyncze znaki) Przykład tablicy: [syntax=c]char...
chara tablica tablica chara flash chara tablica atmega
sterownik lm339 hamulec grzać mercedes stacyjki sprinter
eliminacja zakłóceń octagon tuner
Mitsubishi Outlander 3 JF016E CVT – opinie warsztatów, awarie, koszty serwisu Chlorowodorek aniliny jako topnik – zastosowanie, bezpieczeństwo, alternatywy lutownicze