- iGO Primo
- iPhone topik
- Samsung Galaxy S23 Ultra - non plus ultra
- Honor Magic5 Pro - kamerák bűvöletében
- Samsung Galaxy A56 - megbízható középszerűség
- Yettel topik
- Fotók, videók mobillal
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Szívós, szép és kitartó az új OnePlus óra
- Ingyen beszerezhető pár SEGA klasszikus mielőtt lekerülnek a Play Áruházból
Új hozzászólás Aktív témák
-
nonsen5e
veterán
Köszönöm, megnézem a getch(), meg átdolgozom a ciklust is kicsit.
Majd próbálok kitalálni / keresni valamit a várakoztatásra, rögtön az elején tudtam, hogy ez nem lesz jó, de jelenlegi "tudásom" alapján egyelőre ezt tudtam kigányolni belőle, addig is tudom folytatni a program többi részét.
Semmi házi, vagy beadandó vagy ilyesmi. Saját szórakoztatásomra tanulgatom a nyelvet, úgyhogy minden konstruktív kritikát szívesen fogadok! -
maestro87
őstag
Köszi, ezt így utólag sejtettem, csak sosem láttam/használtam még ezt a módszert. De most már fogom tudni és használni is fogom, hogy más kezdőknek se legyen egyértelmű az ÉN kódom.
Most találtam még egy számomra értelmetlen felesleges utasítást:
EEADRH = (badd >> 8) & 0x03;
EEADR = (badd & 0x0ff);1024 byte-os EEPROM, azaz 10 bites a cím, ezt osztja ketté (8+2 bit). Itt szintén feleslegesnek érzem, hogy 1-esekkel (&0x03, &0xff) 'és'-eli a cím biteket. Mert ha 1 volt, akkor 1 marad, ha meg 0 volt, akkor 0 marad. Kíváncsi lennék, hogy mikor írják a programot a nagy cégek programozói (pl. Microchip), milyen előre megfontolt szándékból tesznek be ilyen felesleges utasításokat?
Azért egy 'és' kapcsolat is csak helyet foglal a szűkös program memóriában...
-
#36268800
törölt tag
Köszönöm a választ! Azt hiszem, megvilágosodtam!
Szerintem JÓL működik. Esetleg egy-két próbát tennél vele? Megvárom a válaszodat és csak utána adom be. -
don_peter
senior tag
Sajnos azt kell mondanom, hogy nem.
Én is úgy akartam kezdeni mint ahogy leírtad és sorra szívtam vele...
Ezért is írtam, hogy magamból kiindulva ajánlom a saját környezet megépítését.
Egy meglévő nyákot nehezebb kiismerni és kötöttebb rá programozni..
De ezt úgy is csak az fogja megérteni aki foglalkozik vele.Én például ilyet készítettem:
-
don_peter
senior tag
Az a baj, hogy ha valaki ilyen fejlesztői környezeten akar tanulni vagy dolgozni akkor minimum tisztába kell lennie egy pár alap elektronikai kérdéssel amelyek alapot adnak a további kiegészítésekhez melyek aztán szerepet játszanak majd a bonyolultabb fejlesztésekben.
buherton, itt is szépen leírta milyen egyéb alkatrészeket lehet beépíteni a tanuló nyákra, de én javaslom az elsőt úgy megépíteni, hogy a szükséges élesztésen kívül csak a felhasználható I/O lábak legyen kihozva tüskesorra.
Aztán későbbiekben bármit rá lehet aggatni könnyedén. -
buherton
őstag
Az a baj, hogy ha beírod a gugliba, hogy ARM/NXP/ST/AVR/PIC development board-ra, akkor szívszédülést fogsz kapni az árak miatt. Egy kb semmit se tudó fejlesztő board 20-30-40-50k huf. Emiatt nagyon sokan adják a fejüket saját elkészítésére. Például. Viszont az való igaz, hogy elektronikát meg kell tanulni, mert enélkül hardveres problémákba ütközhet a programozó, mert itt mindent neked kell írni. Nincsenek driverek
. Kezdésnek ha megkérsz valakit, hogy építsen neked, akkor ilyen 10k huf alatti összegből kijössz. A hobbielektronika.hu-n jobban foglalkoznak ilyesmivel.
MOD: és OS sincs, ami ütemezné a taskjaidat
. Persze lehet ráírni.
-
don_peter
senior tag
Két kis kezeddel, nekiállsz és megtervezed megépíted magadnak a hardvert.
Ennyire egyszerű..
Ott a nyáktervező csak vonalakat kell húzni....
Ami meg nem megy megkérdezi, mit hogyan kössön be.
Aztán ha elkészítette még mindig be tudja ide tenni, hogy ellenőrizzük, hogy nincs e elkötés.
Én is megépítettem 0 hozzáértéssel és sok segítséggel.
Ha nincs ennyi szorgalom akkor ne is haragudj, de felesleges elkezdeni.
Magamról tudom, hogy nagyon sokat kellett olvasnom minden egyes kis dolog után, hogy megértsem annak működését és még így is marad fekete folt.
Amit meg nagyon nem értek rákérdezek, még ha ostoba is a kérdés.Annyi előnye van, hogy van tapasztalata C programozásban.
Nekem az sem volt -
buherton
őstag
Az uC-re úgy kell tekinteni, mint egy mezei digitális áramkörre kapcsolás tervezésnél. Ha speciális interfészeit akarod használni, akkor az adatlapban megtalálsz mindent. A legnehezebb a próba panel esetén, hogy mi kerüljön rá? Aztán a tervezés már nem probléma. Amit ajánlani szoktam az a 2-3 kapcsoló, 2-3 nyomógomb (természetesen Schmitt triggerelve), LCD kijelző, 2 7 szegmenses (ezt én shift regiszterrel szoktam meghajtani, amit aztán SPI-al hajtok meg), 8 LED, RS-232, I2C-s EEPROM, SPI-s hőmérséklet érzékelő, Egy LED az egyik PWM kimenetre, a másik PWM-re pedig egy Darlington-ba kötött transzisztor pár, 32 kHz-es kvarc az RTC-nek, egy poti az egyik ADC-re. Ha tud az uC USB-t, akkor értelemszerűen azt is kivezetm. Ahogy a kolléga mondta, minden uC lábat tüskesorozni kell. Ahogy látod ezenek a nagy része sima GPIO lábra kerül, csak az EEPROM, SPI és a soros port a speciális, mert azok kommunikációs lábakra kerülnek.
Tessék olvasgatni az adatlapokat.
-
buherton
őstag
A lényeg azaz lenne, hogy egy egyszerű mikrokontrolleres környezetet akartam kialakítani a PC-n, hogy ne a a hardveren kelljen szenvedni. Viszont nem rossz ötlet, csak kérdés, hogy Linux engedi-e, hogy egyszerre két program kezelje a soros portot (windowson biztosan nem), de ez már más topic.
-
Jester01
veterán
glibc-ben van fopencookie de az valóban nem szabványos.
Ha saját programodból akarsz mondjuk soros portra írni, akkor úgy célszerű eleve felépíteni.
-
buherton
őstag
A probléma egy kicsit összetettebb, mert az avr-gcc, ezt tudja:
static FILE mystdout = FDEV_SETUP_STREAM(usart_putchar_printf, NULL, _FDEV_SETUP_WRITE);
int main( void )
{
stdout = &mystdout;
printf("Hello world");
}
void usart_putchar_printf(char data, FILE *stream)
{
bájt küldése soros porton
}és ezt szerettem volna elérni a PC-n is, hogy végül egy függvényt hívjon minden karakter kiíráskor.
-
don_peter
senior tag
Igen, igen igazad van.
Erre gondoltam én is, csak rosszul fejeztem ki maga.
A lényeg az, hogy az eredmény (arra amire nekem kellene) értékelhetetlen lenne az utóbbi megoldást használva.buherton:
Közben rájöttem, hogy a memória címzés miatt csúszott el durván az egész beírás.
Most már megy szépen minden oda ahová kell.
2óra debug kihozta a hibát -
don_peter
senior tag
Próbálom úgy szétbontani a programot, hogy a függvények egy külön becsatolt állományként működjenek.
Ha ugyan abban a fájlban lennének a függvények amelyikben használni akarom akkor nem lenne gond maximum több ezer sorra duzzadna a az egy helyen leírt program kód.
Ez átláthatatlanságot eredményezne.Még agyalok mi legyen, de sajnos a függvényesítés nem jó, már próbáltam egyszer, de lehet még szánok rá egy kis időt hátha meg tudom okosan oldani..
-
don_peter
senior tag
Nem büdös, csak nem tudom bele tenni.
Ha beleteszem akkor iszonyat mennyiségű globális változót kellene használnom vagy túlbonyolítani a programot a függvényesítés miatt.
Minden program rész összefügg és folyamatos kapcsolatban kell lenniük a memória kezelése miatt.
Így is van vagy 20db külön függvény már és még lesz legalább ennyi...A switch utasítás meg ugyan az lenne mint az if csak itt nem else if lenne leírva soronként hanem a case: .
-
don_peter
senior tag
Igen használok adatstruktúrát és azt union-ban (típus definícióval) megadva megadom a memória címzését hexában...
De azt hogy egy adott 2bájtos adatot, hogyan adok át egy memóriának mikor az maximum 1bájtot tud egyszerre a buffer regiszterébe kezelni....ez nem fér a fejembe..
A többi dolgot megoldom sort int és unsigned char típusú változókkal. -
don_peter
senior tag
Az sajnos nincs.. mármint sscanf() függvényem, nyilván egyszerübb lenne sok minden, ha pont úgy működne mint PC-én, de sajnos nem
A 4x4-es mátrix gombsort folyamatosan ellenőrzi a progi amit írtam rá és ha gombnyomás történik akkor a gombhoz párosított karaktert menti egy ideiglenes változóba.
Ez után, ha végig ment a kiértékelésen betöltődik egy tömbbe és az ideiglenes változót töröljük és újrakezdődik a folyamat addig ameddig el nem érjük a kívánt karakterszámot vagy ENTER-nek megfelelő gombot meg nem nyomjuk.Érdekes dolog ez a mikrokontroller programozás.
Ui:
Közben így módosítottam a vizsgáló kódom:unsigned int i=0;
unsigned char teszt[4] = {'1','A','3','\0'};
for(i=0; i<=sizeof(teszt)-2; i++){
if ( (teszt[i] >= '0' && teszt[i] <= '9') )
printf("Ez egy számjegy!\n");
else
printf("Ez egy betű!\n");
}Viszont a változó méretű, de maximum 18 karakter férőhelyes tömbömben majd vizsgálnom kell a végét is és ez felveti azt a problémát, hogy a sizeof() függvényt le kell cseréljem egy általam vagy már létező strlen() függvényre.
De, ezek már részletkérdések.. -
don_peter
senior tag
Közben rájöttem
Kicsit agyalnom kellett az eddig tanultakon bár annak nem örülök, hogy lépésenként kell végignézni a karaktereket ...unsigned int i=0;
unsigned char teszt[4] = {'1','A','3','\0'};
for(i=0; i<=sizeof(teszt)-1; i++){
if ( (teszt[i] >= 'A' && teszt[i] <= 'Z') )
printf("Ez egy betű!\n");
else
printf("Ez egy számjegy!\n");
}Közben látom, hogy megelőztetek
Köszi..Szerk:
Értem akkor inkább a számokat vizsgáljam, mert az rövidebb ideig tart.
Világos.. Mindig tanulok valami újat.
Néztétek a videót amit linkeltem ezzel kapcsolatban?
Kukk meg itt: [link] -
-
-
-
axioma
veterán
Tudom hogy mas, nalunk is ilyen fejlesztes van, csak en csak toolt irok hozza, kiveve a lent emlitett aes reszlet. Viszont biztonsagkritikus a termek, igy azert eleg sok minden a nem megengedheto kategoria.
Volt - mas termekvonalon - olyan programozo, aki baromi okos, eszmeletlen tomor kodot irt, ellenben kommentek nelkul, verziokezeles immel-ammal, es az o reszebe tkp. eselytelen volt masnak megtenni egy valtoztatast. Ez addig jo, amig o keznel van, es barmit kulon kovetelesek nelkul megtesz. Aztan borul a bili. [Masik m.helyen volt m.tars, aki azzal dicsekedett, hogy az elozo m.helyen valami premiumot nem akartak kifizetni mikor eljott, erre random helyeken kicserelt egy adatbazisban matato programban +1-eket -1-re es felcserelt hasonlo nevu szamlalokat... dobbenet, mikre nem kell szamitani mint munkaltato.]
Nyilvan eltertunk az alaptargytol, azt a kis reszletet - legfeljebb ne'mi aha-elmeny utan - normalis programozo atlatja. En ettol fuggetlenul rossz uzenetnek tartanam egy felvetelin. Ennyi, es nem tobb. -
don_peter
senior tag
Tömb kezeléssel kapcsolatos:
Közben sikerült eljutnom odáig, hogy elolvassam a linkelt írásodat.
Most úgy oldottam meg segítséggel a dolgot, hogy egy függvénynek átadom a kellő paramétereket (float) és a feldolgozás (string-é alakítás) végén feltölt egy tomb-öt (amit a program elején "volatile unsigned char szamok[10]" változóként deklarálok) az eredménnyel.
Aztán ahol kell ott pedig kiíratom string-ként printf() %s megadásával.Az írásodban viszont arra hívod fel a figyelmet, hogy ne használjuk ezen megoldást.
Vagy nem jó értelmeztem? (globális változók)
Jó az elmélet vagy a globális változó miatt ez gondot okozhat nekem? -
don_peter
senior tag
Értem és igazad is van, és ahogy te is írtad szigorúan számról van szó.
Most például azon agyalok, hogy mi van abban az esetben, ha mondjuk lebegőpontos számot akarok az előzőkben leírtak szerint szétszedni majd újból összerakni, hogy azt miként kell elvégezni.
Mondjuk van egy float szam = 13.45445667; számom akkor ezt, hogy bontom le egyesével és akár egy tömbbe is aztán meg újból összerakni.
Ennél már lehetne alkalmazni a string-es megoldást, sőt az lenne a legjobb.
Tehát egy lebegőpontos számot string-é alakítani..
Ez is megoldható egyébként?ui: ezt a számot mondjuk egy program eredménye képen kapnám, tehát nincs beviteli rész.
-
buherton
őstag
PC-n máshogy jön ki a dolog, de azért ne általánosítsunk. Qt-ban olyan kódot írhatsz ami GUI-t kezel és ugyanaz a függvény hívás három oprendszeren is működik. Csak külön le kell fordítani mind a háromra. Viszont beágyazott rendszerben nagyon kényelmes tud lenni, hogy PC-n kezdem el a fejlesztést, ahol ugye egyszerűbb debuggolni a C kódot és a memóriá elírásokat is nagyság rendekkel könnyebb megtalálni. Közre játszik ugye az is, hogy az elírásról az IC nem dob fel neked egy ablakot, hogy hoppá
. Amikor az ember túl van a nehezén csak áthúzza a másik projektbe és mehet a fejlesztés tovább a hardveren mindenféle változtatás nélkül. Ez a platform függetlenség. Persze ehhez mindkét helyen meg kell lennie a megfelelő interfész függvényeknek.
Vuze-val kapcsolatban rosszul emlékeztem akkor, de ettől függetlenül panaszkodnak rá, hogy jobban eszi a gépet, mint a többi torrent kliens.
(#4421) alapz@j: Szó mi szó nem szaggat nálam se, de a ventit nagyon pörgeti az fix.
(#4420) dabadab: C a beágyazott rendszerek egyeduralkodó nyelve. Ha újabb kocsid van, akkor nagyjából 10 millió sornyi C kód vigyáz rád, illetve szórakoztat téged
. Én személy szerint nem tanultam mást csak C-t. Ön szorgalomból tanultam meg a PERL-t, C++-t, egy kicsit a bash-t.
(#4437) alapz@j: Hogy a fenébe van ideje futás közben újra fordítani? Pontosítok. Honnan tudja futás közben, hogy hogyan lehet optimalizáltabb? Hogy tud még ennél is optimalizáltabb kódot fordítani?
-
Jester01
veterán
Hmm, a JIT kód nem tűnik túl okosnak, nem tudom mitől gyors:
0x00007fe2237a679a: movsd 0x10(%rbx,%rbp,8),%xmm0 ;*daload
; - Test::summUp@12 (line 11)
0x00007fe2237a67a0: movsd 0x8(%rsp),%xmm1
0x00007fe2237a67a6: addsd %xmm0,%xmm1
0x00007fe2237a67aa: inc %ebp
0x00007fe2237a67ac: ucomisd 0x20c(%rip),%xmm0 # 0x00007fe2237a69c0
; {section_word}
0x00007fe2237a67b4: movsd 0x8(%rsp),%xmm0
0x00007fe2237a67ba: ja 0x00007fe2237a67c0
0x00007fe2237a67bc: movapd %xmm0,%xmm1 ;*iinc
; - Test::summUp@26 (line 10)
0x00007fe2237a67c0: cmp %r11d,%ebp
0x00007fe2237a67c3: jge 0x00007fe2237a67cd
0x00007fe2237a67c5: movsd %xmm1,0x8(%rsp)
0x00007fe2237a67cb: jmp 0x00007fe2237a679a -
buherton
őstag
Mondjuk valahol igaz. Azért én is törekedni szoktam, hogy a warningok ki legyenek szedve a kódból.
De pl. a void main(void) warninggal nem szoktam foglalkozni, vagy a castos figyelmeztetésekkel.
(#4404) TheProb: Ha Androiddal fogsz foglakozni, akkor itt elég csak a túlélésért küzdeni. A C és Java ég és föld. Amit most csinálsz példát az Java-ban majd sokkal, de sokkal egyszerűbb és kényelmesebb lesz.
(#4406) TheProb: Függ attól, hogy mire programozol és hogy mit. Általában elmondható, hogy a Java egyszerűbb, és kényelmesebb. Rengeteg minden készen kapsz, amit a C alatt neked kell lekódolni.
-
TheProb
veterán
-
TheProb
veterán
A gond az, hogy dinamikus tömböket még nem tanultunk, mutatókat is még csak fogjuk. Azt a stackelős részt szintén nem értem :S Valamint, az miért jó ha bemenő paraméterként adom meg a char tömböt? egy részről, ha arab szám a bemenet akkor mért char? Másrészt meg a .csv fájlból való input, fv kérés és benne az érték is int lesz. (gondolom én)
-
buherton
őstag
Áh értem most már.
(#4219) alapz@j: Nem op.rendszer függő, hanem architektúra. Az általunk használt ARM nem támogatja az MPU-t, így ha dinamikusan foglalsz memóriát, majd szabadítasz fel, akkor egy idő után teljesen széttöredezik a memória tábla, és lefagy az egész. De ha támogatná sem lehetne használni, mert automotive.
-
v2izzy
tag
Én sem értem. Ha valakit érdekel itt van a slide, ahol felhívják a figyelmet erre. Leginkább a gondom amúgy az volt, hogy egy beadandónál nem fogadta el az oldal a programomat, mert szerepelt benne a realloc szó.
Még ezekkel kapcsolatban lenne olyan kérdésem, hogy ha meghívom realloc-ot, hogy kisebb memóriaterületet foglaljon, akkor levágja a lefoglalt területet? Ha igen, akkor mindig vagy ez függhet más dolgoktól?
-
alapz@j
tag
Én mindig ugyanabba a sorba rakom a nyitó kapcsost, még függvény definíciónál is
int main(void) {
return 0;
}a típusjelölésre teszem a csillagot, mert olvashatóbb
char* nothing(char* string) {
return string;
}Ja, és egy sorra soha nem használok kapcsost:
if (..)
for (...)
printf("Hit me!\n"); -
buherton
őstag
Hát nem. Ez a példa lefordult, de másfélszer (igazából 10-szer annyit, csak faragtam rajta) annyi memóriát eszik mint amennyi van a mikrokontrollerben (1 kB van az MCU-ban), mert a nano részt is használja. Próbálkoztam az első példával, ami csak a pico-t használja, de úgy szó szerint egy rakás bug az egész. Olyan assembly parancsokat használ, ami nincs az AVR-nek, és ha azt javítom sem fordul le, mert két millió más baja van.
Pedig nagyon ígéretesnek tűnt, mert x86-on is lehet használni.
-
krisztianAMG
senior tag
Kivettem a ciklust, futtatást: 1-es beüt, Enter. Szépen ki is írja, hogy "Ahoj". Utána F1, de egy 1-est ír, újabb Enter után pedig egy újabb "Ahoj"-t.
Egyébként igazad volt, 86%-on pörgette szegényt. És ezt kaptuk kiindulási alapnak...
Esetleg javaslat, merre induljak, hogy normálisan legyen megoldva?A feladat egy egyszerű játék: Kidob egy random karaktert, majd méri az idő, ami alatt azt a gombsoron leütöd. Plusz kiegészítésként kell tudnia: F1- Help, F2 - indítás...
-
Jester01
veterán
Valóban.
Nem gondoltam, hogy ez így meg van kötve ezért nem is néztem utána.
De most megtettem így még két pont érdekes:An implementation may allocate any addressable storage unit large enough to hold a bit-field.
Tehát még ha el is fogadja a char-t akkor sem kötelező neki abban tárolni.
Továbbá:The order of allocation of bit-fields within a unit (high-order to low-order or low-order to high-order) is implementation-defined.
Vagyis a fenti példában a bit0-7 tagok egyáltalán nem biztos, hogy a névből következő helyiértéknek felelnek meg.
-
Vasinger!
nagyúr
Ez igaz, ez tényleg nem jó módszer, mert valóban túlindexelheti, persze azt nem tettem hozzá hogy csak ideális esetet nézzünk. Tehát mindenkinek ilyen alakú a neve: Szabó János Tehát is az első szóköz után kell nagybetűsíteni.
Arra gondoltam én is, hogy minden stringet nagybetűsíteni talán könnyebb, de akkor hogyan csinálok kisbetűt belőlük utána ami nem kell?
Az oké, hogy azt a megoldást kell használni 0-tól különböző helyre is, de nem tudom az indexet, hogy hol kéne használni.
-
buherton
őstag
Egy napot kotlottam rajta, de ez nem jutott volna az eszembe... Persze hogy nem működik jól, hiszen ahogy írtad a két string címét kapja meg a struktúra, és az ugye mindhárom esetben ugyanaz, és mivel arra a két stringre legutoljára a Svájc került, így persze, hogy azt olvassa csak ki.
Ezer köszönet!
Igen csak szokni kell még a gondolkodást.
-
Karma
félisten
Najó, ez csak pedantéria, és ahogy nézem Linuxon nincs is rá szükség - az IGNPAR flaggel az egész hibakezelést ki lehet hagyni a képletből.
(Tök izgalmas ez a feladat
Kár hogy nem tudok kísérletezni ilyennel élesben. Bár lehetne íeni egy szimulátort FPGA-ra, ami ezeket a jeleket tolja ki.)
-
e=mc²
őstag
Levettem minden define-t 10-re, igy mukodik (nemi finomitas utan).
Jelen esetben Eclipse-t, CodeBlocks-ot es Quincy-t hasznalok MinGW-vel. Mindegyikben megneztem, mindegyikben ugyanaz a hiba. Ha tul nagy a #define-olt szam (esetemben 1000), akkor elszall, a main fuggvenyben eloszor meghivott fuggvenyben. (ahol is van a kerdeses replace).
MinGW-bol is ket fele install van, a CB feltett egyet kulon maganak.
A progi kesz, ugyhogy koszi mindenkinek, aki akart segiteni.
udv,
-
aAron_
őstag
az a baj, hogy ebben az esetben rengeteg függvényt át kéne írnom teljesen amit már korábban elkészítettem, ill van pár "mondat" ami csak egy karakteres (mindig ugyan azok), így eléggé memória pazarló lenne
így utólag lehet én is több dimenziós tömbbel oldottam volna meg, de most már egyszerűbb megoldás ha marad a struct, max sormintázok...
-
aAron_
őstag
van egy több soros stringem, minden sorában van 10 mondat egymástól tabulátorral elválasztva
ezt egy struct tömbe szeretném minél egyszerűbben beírni, ami valahogy így néz ki:
struct sor
{
char elso_mondat[100],
masodik_mondat[100],
.
.
.
tizedik_mondat[100];
} sorok[1000];a valóságban nem teljesen ezt kell megoldanom, de így lebutítva egyszerűbb most
azért lett volna egyszerűbb ha tudok minden elemére hivatkozni számmal mert akkor meg tudtam volna oldani copyzás nélkül egyből, így viszont nem tudom, hogy lehetne szépen megcsinálni
-
PumpkinSeed
addikt
Kezdőként értelmetlen kérdésem: Ha nem scanf-el végezzük a bekérést akkor mivel?
Meg adott egy számkitalálós játék. Bekérésnél scanf ("%d";&a);
Olyan problémám lenne, hogy ha betűt adok meg és nem számot akkor bebuggol a program és végtelen ciklussá változik. Nincs valami egyszerű de hatékony megoldás erre. Azt hallottam, hogy be kell olvasni tömbként és ki kell vonni az ASCI kódból tömbben ki olvasott értékkel kell valamit szugerálni. Na nekem ennél egyszerűbbre lenne szükségem.
-
e=mc²
őstag
-
e=mc²
őstag
Bocs, hogy ilyet kerdezek, de hogy kell "elnyelni puszta kezzel"?
Most fgets-el probalkoztam, de az eredmeny...
Igazabol szerintem scanf-el kellene valahogy megoldani, mert a tobbi beolvaso fuggvenyt eddig nem hasznaltuk es megemlitve sem voltak...
Az a baj, hogy ertem en a logikajat, de megoldani mar sajna nem mindig megy...
-
Jester01
veterán
mert a gets az stdin pufferben hagyja az újsor karaktert
Elvileg (és nálam gyakorlatilag) nem hagyja ott. De a scanf meg amúgy is megeszi automatikusan.Egyébként gets-et tilos használni, fővesztés terhe mellett. Helyette fgets ajánlott.
MOD: Konkrétan a település nevét bekérő scanf hagyja a pufferben a sorvéget, így a gets fog üreset adni és a közterület marad ki, nem a házszám.
-
csicsaaa
tag
Köszi a gyors választ
, de egyszerűen analfabéta vagyok!
Az általad leírtakra ezt írtam:
{
clrscr();
printf("Adj meg két számot, és megmondom melyek parosak koztuk.");
scanf("%i",&a);
scanf("%i",&b);
while(a<=b)
{
if(a%2==0)
{
printf("%i ",a);
a=a+1 ;
}
}
getch();
return 0;
}
...és mikor végig fut a program az "a" értékét adja vissza!
Mi az amit nem látok?
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Bomba ár! Dell Latitude 7420 - i7-1185G7 I 16GB I 512SSD I HDMI I 14" 4K I Cam I W11 I Garancia!
- BESZÁMÍTÁS! MSI B450M R5 5600 16GB DDR4 512GB SSD RTX 3060 12GB THERMALTAKE Core V21 Enermax 650W
- Új Apple iPhone 16 Pro Max 256GB, Kártyafüggetlen, 3 Év Garanciával
- Azonnali készpénzes AMD Radeon RX 5000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest