- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Google Chromecast topic
- Amazon Kindle
- Dell notebook topic
- Házimozi belépő szinten
- Azonnali fotós kérdések órája
- Milyen monitort vegyek?
- Milyen videókártyát?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
Sk8erPeter #1798 üzenetére
bme prog alap 1?
manuálisan is be lehet adni az ellenőrző programnak a 3 kifejezést (+ a maradék 181 kamu sort valahogy), de mivel nálunk úgy volt, hogy a következő feladatban kaptunk egy viszonylag nagy bemenetet és el kellett dönteni, hogy melyik sorra illeszkedik a kifejezés, jobban jársz ha már most kódolszaz ellenőrzés állapotgéppel megy, ha megtalálod a jó állapotokat, akkor nyilván lehet írni egy olyan verziót is, ahol az állapotokban az ellenőrzés helyett vmi random* (a feltételeknek megfelelő) kimenetet generál
-
cucka
addikt
válasz
Sk8erPeter #1798 üzenetére
_* : alsóvonás karakter után tetszőleges számú, bármilyen karakter
A * azt jelenti, hogy az előtte álló karakter(ek)ből tetszőleges számú van a mintában, tehát itt tetszőleges számú _ karakterről van szó. A tetszőleges szám bármilyen természetes szám lehet, beleértve a nullát is. Ha majd olyanról beszélnek az iskolában, hogy lezárás, vagy egy halmaz lezártja, na ez az.
(0x) :
* : utána tetszőleges számú, bármilyen karakter
Lásd az előbbi, tehát erre olyanok fognak illeszkedni, hogy epszilon, 0x, 0x0x, 0x0x0x, stb.. : egy db tetsz. kar.
* : tetszőleges számú, bármilyen karakter
A . bármilyen karakterre illeszkedik, a .* tehát tetszőleges számú tetszőleges karaktert jelent..+ : tetsz. kar. legalább egyszer (van ennek értelme? )
Van.Arra még figyelj oda, hogy a minta végén nincs ott a sorvége, tehát akkor is illeszkedni fog az adott sorra a minta, ha az illeszkedő rész után további karakterek is vannak a sorban.
-
Sk8erPeter
nagyúr
Hali!
Van egy program, amiben egy reguláris kifejezés helyes értelmezésével akadtak problémáim, leírom a feladatot (benne a regexpet), aztán ahogy értelmeztem, légyszi javítsatok ki, hogy jó-e..."Írjon C programot, amely a szabványos kimenetre kiír egy olyan 184 sor hosszú szöveget, amelyben pontosan 3 olyan egymástól különböző sor van, amelyre az alábbi reguláris kifejezés illeszkedik:
^[^#]_*(0x)*[0-9]+W6.*[a-z]+.+qqriq(A|a)
(Az utolsó sor végén is legyen \n karakter!)"
^ : Sor elején fordul elő a minta
[^#] : bármilyen karakter, ami nem #
_* : alsóvonás karakter után tetszőleges számú, bármilyen karakter
(0x) :
* : utána tetszőleges számú, bármilyen karakter
[0-9]+ : szám, mely legalább egyszer szerepel
W6 : W6 ...
. : egy db tetsz. kar.
* : tetszőleges számú, bármilyen karakter
[a-z]+ : a-z tartományból legalább egy betű
.+ : tetsz. kar. legalább egyszer (van ennek értelme?)
qqriq : qqriq...
(A|a) : 'A' vagy 'a' betű szerepel utánaEgy-két helyen nem ment az értelmezés.
Ezenkívül azzal van a gondom, hogy most automatikusan hogyan generáljak egy ilyen szöveget? Mert manuálisan is bevihetnék egy ilyen szöveget, amire ez illeszkedik, de lehet, hogy nem az a feladat lényege (ez nem derül ki világosan számomra)...Előre is köszi a segítséget!
-
bpx
őstag
válasz
Korcsii #1795 üzenetére
hát pl. az előbb linkelt megoldással qsort-tal és saját összehasonlító függvénnyel lehet rendezni, egy függvénypointer-tömbben (de szép szó
) eltárolod ezeket a fv-eket, és akkor elég a 'mit' változóval ezt a tömböt paraméterezni egy qsort hívásban
persze ha van összesen 2 fv-ed, akkor nem biztos hogy ennyire bonyolítani kell, és simán elég az amit te írtál -
Gyuri16
senior tag
válasz
Korcsii #1795 üzenetére
ezt pont igy meg lehet irni, olvasd el megegyszer shev7 es doc hszait.
a qsortnak adhatsz egy fuggvenyt, ami eldonti miszerint lesz rendezve. megirod ezt a ket fuggvenyt (varos es termek szerint), es beirod az ifedbe a megfelelo parameterekkel a qsortot
itt egy pelda: [link]
-
Korcsii
őstag
sry, valahogy így gondoltam:
int rendezes(int mit) {
if (mit=1) {
// rendez adat[i].varos szerint
} else if (mit=2) {
// rendez adat[i].termek szerint
} ...
}
na ez most szép és jó, de túl sok értelme nincs... de inkább hagyom, annyira nem lényeges... esetleg majd ha unatkozom, rágooglezek még párszor -
shev7
veterán
válasz
Korcsii #1793 üzenetére
"függvény talán azért lenne szerencsésebb, mert 3x kell használni, és így elég lenne egyszer megírni... de igazán semmi ötletem nincs erre, max az, hogy egy sima váltózóból kap egy értéket, és azt megvizsgálva a megfelelőt pörgeti végig... na de ez lehet még hosszabb/rosszabb, mint ha mindenhova odaírnám..."
Ezt csak en nem ertem mit akar jelenteni?
-
Korcsii
őstag
kösz mindenkinek, este majd próbálkozok velük
strcmp-t már használtam, de eddig csak arra, hogy megnézzem ugyan az-e a kettő... most már értem, hogy miért is viselkedik úgy, ahogy (magyarul 0, ha ugyanaz)... apropó, nincs valami php.net-hez hasonló oldal, ahol rá lehetne keresni ezekre (eddig PHP-ztam, és nagyon jól jött)?
függvény talán azért lenne szerencsésebb, mert 3x kell használni, és így elég lenne egyszer megírni... de igazán semmi ötletem nincs erre, max az, hogy egy sima váltózóból kap egy értéket, és azt megvizsgálva a megfelelőt pörgeti végig... na de ez lehet még hosszabb/rosszabb, mint ha mindenhova odaírnám...
-
doc
nagyúr
válasz
Korcsii #1789 üzenetére
az stdlib.h-ban definialt qsort lesz a baratod, kell irnod egy fuggvenyt ami eldonti ket structurarol hogy melyik a nagyobb (ez nem lehet gond), aztan csak siman raengedni a tombre, es voila, kesz is
ha csinalsz ket kulon fv-t, egyet a varos, egyet a termek alapjan torteno osszehasonlitasra, akkor meg mar teljesen kesz a feladatMOD: shev7 megelozott
-
Karma
félisten
válasz
Korcsii #1789 üzenetére
Nezd meg az strcmp fuggvenyt, azzal lehet peldaul ket karakterlancot ABC szerint osszehasonlitani.
Az mar egy kicsit nagyobb magia, hogy olyan fuggvenyt irj, ami a struktura tetszoleges tagvaltozoja szerint kepes rendezni. C++-ban tudom hogy van erre megfelelo pointertipus, sima C-ben nem tudom.
-
Korcsii
őstag
nah első prog kérdésem: van egy n elemből álló tömb:
typedef struct {
char varos[21];
char termek[21];
short int darab;
} adatok;
adatok adat[1000];nos ezt kellene az adat[i].termek szerint ABC sorrendbe rendezni...
számoknál ez nem is nagy cucc, de szövegeknél?és jó lenne mindezt egy új, mondjuk rendezes nevű eljárásba belepakolni, hogy utána vissza is lehessen rendezni az adat[i].varos szerint (igazából azt nem tudom, hogy hogyan lehetne azt megadni neki, hogy varos vagy termek alapján rendezzen... az if-nél valami értelmesebb megoldást keresek)...
na de ez már opcionális, elkínlódok majd vele, a lényeg inkább az ABC sorrend lenne.... -
elfenomeno
csendes tag
Sziasztok!
Egy kis segítséget szeretnék kérni.
A feladat a következő: Egy sor beolvasása ,majd a convert függvény meghívása, ami azt csinálja, hogy ha 2 egyforma betű jön egymás után akkor a másodikat kihagyja ha szám jön azt megduplázza
az eredménynek a helyét a fg-be kell foglalni
na most a sor olvasása még talán megy fggets-el a stdin-ről beolvasok egy sort
a foglalás már necces 256os tömböt létrehozok a fgbe az úgy jó ??(nem kell minimális foglalás)
de a convert rész már teljesen sansztalan
remélem tudtuk segíteni és előre is köszi ! -
-
Sk8erPeter
nagyúr
Jahh, rájöttem utólag, hogy azt is odaírtam, csak azt utólag találtam és biggyesztettem oda, az a mondat meg figyelmetlenségből benne maradt.
Bocsi.
Csak gondoltam megkérdezem, jöhetnek-e ide is C++-kérdések, mert itt viszonylag sokan mozgolódnak. De akkor majd áthúzom a belem oda. -
j0k3r!
őstag
válasz
Retekegér #1778 üzenetére
elore is bocsanat, ha nagy baromsagot irok, mar reg c-ztem...
itt egy link
en hianyolom a srandot, ha mar "veletlen" szamokrol van szo. -
bpx
őstag
válasz
Sk8erPeter #1780 üzenetére
a "C++ gyors segítség kellene" akkor mi a bánat ha nem külön c++ topic?
-
Sk8erPeter
nagyúr
Hali!
Csak általános jellegű kérdés, ezért is teszem OFF-ba:
ide végül is jöhetnek C++-os kérdések (aktuális félév tananyaga), vagy azzal húzzak majd át a Programozás fórum vagy C++ gyors segitseg kellene topicba?
Külön C++ topicot nem találtam. -
Retekegér
MODERÁTOR
válasz
Jester01 #1777 üzenetére
Itt a teljes feladat:
#include <stdio.h>
#include <stdlib.h>
#define NELEM 1000
main()
{
double *pd, sv;
int i , j, lepes;
/* Helyfoglalás ellenőrzéssel */
pd = (double *) calloc( NELEM, sizeof(double));
if (! pd) {
printf("\a\nNincs elég memória!\n");
return -1; /* Hiba történt */
}
/* A tömb feltöltése véletlen számokkal */
for (i = 0; i < NELEM; i++)
*(pd + i) = random(10000)*12.34;
/* Shell - rendezés */
for (lepes = NELEM/2; lepes >0; lepes /=2)
for (i = lepes; i < NELEM; i++)
for (j=i-lepes; j>=0 && pd[j]>pd[j+lepes]; j-=lepes)
{
sv = pd[j];
pd[j] = pd[j+lepes];
pd[j+lepes]= sv;
}
/* A lefoglalt terület felszabadítása */
free(pd);
return 0; /* Hibátlan volt a program futása */
} -
Karma
félisten
válasz
Retekegér #1775 üzenetére
Sajnos attól még nem lesz semmi értelme, tényleg. Én is ezt a könyvet adtam látatlanban az öcsémnek, hogy ebből összeszedheti a nyelv alapjait, de azt tapasztaltam (legalábbis a '96-os kiadásban), hogy sokszor van, hogy nem mondja el a miértet.
Jester01: De ha csak annyi a lényeg, hogy véletlenszámokat generáljunk (ami persze ebben a formában oximoron), akkor nincs semmi értelme. Én ezt feltételeztem.
-
Retekegér
MODERÁTOR
A Programozzunk C nyelven! c. könyv egyik példájában van, mindenféle magyarázat nélkül. Illetve a könyvtái függvények leírása között ott a random függvény: egész véletlen szám előállítása 0 és az argumentum-1 között.
Lényeg, hogy nem értettem a 12,34 számmal való szorzást, később következetesen 1,234-el szoroz. -
Retekegér
MODERÁTOR
Adott egy tömb, melyet fel kell tölteni véletlen számokkal, a vonatkozó programrészlet:
for (i = 0; i < NELEM; i++) /* NELEM = 1000*/
*(pd + i) = random(10000)*12.34;Ezt valaki el tuná magyarázni, miért így kell? --> random(10000)*12.34
-
Jester01
veterán
Hogy a rákba ne lenne. Gondolkozz már, ha egyszer a task manager is tudja a proci terhelést akkor nyilván meg lehet csinálni. Komolyan nem értem miért olyan nagy kihívás az msdnben megkeresni. Először talán ezt tanuld meg (önállóan információt szerezni) és csak utána programozni
-
kltz
tag
Hello!
Nekem egy olyan kérdésem lenne, hogy van-e arra lehetőség ,hogy mérni a CPU teljesítményt ami majd a végén kiírja kihasználtságot vagy valami hasonlót és ez memóriára is érdekelne.
-
Dealer
tag
Köszi a segitséget srácok, de a Visual Studio 2006ba nincs ilyen hogy continue csak step into, step over, stb, ilyenek vannak amik hatására előugrik a dissasembly
a 2008 meg valamiért le sem akarja compilolni a forráskódomat (szürke a gomb). Vasárnap megyek vissza koliba majd elsírom a nyügömet valami okostojásnak.
Azért thx még1x... -
Sk8erPeter
nagyúr
Komolyan nem értem. Miért jön elő neked a Disassemble?
Nem ezzel szoktam fordítani, de most gyorsan kipróbáltam a Visual C++ 2008 Express Edition-t, és itt egy pár kép róla (innen másoltam ki egy full egyszerű kódrészletet), hogyan lehet debuggolni, és watch-olni a különböző változók értékének változását; bekarikáztam pirossal a legfontosabb részeket:
1.) elhelyezgethetsz annyi breakpointot, amennyit csak akarsz (a sorok számánál mondjuk nem többet) (klikk a sorok számozásánál, megjelenik a piros pötty), aztán Start Debugging: [KÉP1]
2.) kijelölöd, amit figyelni szeretnél, aztán jobb klikk, Add watch: [KÉP2], ekkor bal oldalt alul látható, hogy megjelenik egy Watch ablak, na itt lehet figyelgetni a változók értékeit, ahogy adott esetben értéket kapnak, cserélődnek, "memóriaszemét" van benne, stb.
3.) Continue-val nyomogathatod addig, amíg breakpointjaid vannak, vagy egyéb (véget ér a program, vagy beavatkozást igényel, stb.), és megszakíthatod a Stop Debugginggal: [KÉP3]Így már tiszta?
-
Dealer
tag
Semmit sem akarok azzal a dissasemblyvel csinálni hát épp ezaz! De mégis állandóan oda lép be bármit csinálok.
Tegyük fel hogy a programom nem az elvárt ereményt dobja ki. Figyeltetni akarom a változókat és sorrol sorra végigmenni a programon a debug programmal hogy rájöjjek hol csináltam ökörséget.
De most akkor mit hogy csináljak hogy békén hagyjon ez az assembly ablak, és hogy lépésről lépésre tudjam figyelni a programot mikor mit csinál. Kb úgy mint a borland féle turbo C debuggere... -
Dealer
tag
válasz
Sk8erPeter #1753 üzenetére
Nekem konkrétan ez a Disassembly nem fekszik! Ehez még elég kezdő vagyok tudom, és engem teljesen bezavar. Csak sejtem hogy miaz, és hogy mire való. Állandóan valami source pathot akar tőlem kérni ahogy lépek tovább a programban. Másik problémám hogy nemtudok rendesen változókat figyeltetni vele, hozzá adom watchokat de semmi hatás. Szóval úgyahogy van semmi értelmeset nemtudok vele csinálni
-
Tussky
tag
Stringet lehet valahogy egyszerű lépésben double-á konvertálni ? Elvileg a strtod,atof stringből csinál double-t,gyakorlatilag meg char*-ból...
-
Sk8erPeter
nagyúr
Dehát ez C++...
(#1749) Dealer: konkrétan mi a problémád vele? Nekem VS alatt teljesen kézenfekvő volt a debuggolás, mert nem kellett külön telepíteni hozzá debuggert, és beállítgatni, CodeBlocks-hoz kellett (mondjuk az se volt bonyolult). Jól láthatóan elkülönítve rakták be a saját menüjébe, ott van a Watch ablak, stb. Amúgy biztos a saját helpjében is benne van... De ha konkrétabban kérdezed, akkor biztos itt meg tudják mondani a választ.
-
Tussky
tag
Sziasztok!
A feladat az lenne,hogy egy filet soronként beolvassak és a megfelelő sorokból kinyerjem az adatokat.Addig eljutottam,hogy csak a megfelelő sorokat kinyerem,itt kéne az adott helyen lévő adatokat kimásolnom egy másik fájlba,azonban egy olyan problémval találkozok,amivel nem nagyon tudok mit kezdeni.
Konkrétan a program:
#include <fstream>
#include <string>
#include <iostream>
#include <vector>
using namespace std;
int main(){
string line, filename = "valami.txt";
ifstream file;
file.open(filename.c_str());
while (file.is_open() && file.eof()==false){
getline(file,line);
if( (line.compare(0,4,"HAMB")==0) && (line.compare(12,14,"TO")==0) ){
cout << line << endl;
}
}
file.close();
return 0;
}Valakinek van ötlete,hogy az if miért nem jó ? Fordításnál nincs gond,de amint futtatom terminated.Igazából,ha az if-es sor jó lenne,akkor tovább tudnék lépni,de nem jövök rá,hogy miért nem megy.A probléma az,hogyha két külön if-re bontom se boldogul a sorral.
Előre is kösz a válaszokat!
-
Dealer
tag
Hali! Tudnátok linkelni nekem valami értelmes tutorialt hogy hogyan lehet profin debuggolni c+ progit Visual Studio 2008 vagy 2006-ban? Eddig a sima Borland TC-hez voltam hozzászokva ott teljesen egyértelmü volt hogy mit is csinálok de ezen a VS-en nemtudok kiigazodni
...
köszi! -
Gyuri16
senior tag
orulok, hogy mas is hasznal vimet
igen ctags-ra gondolok, kicsit jatszottam vele (foleg azert, mert autocompletionhoz is kell), mas tapasztalata alapjan konnyebb beallitani ezeket a dolgokat. sajnos a dokumentacio egyes pluginokhoz eleg keves.
debuggolasra probaltam yavdb-t, de nem sikerult beizzitani (leiras alapjan nem tudtam megcsinalni)
gdb nekem mar tul fapadosugralos dolgot mindjart kiprobalom
-
doc
nagyúr
válasz
Gyuri16 #1746 üzenetére
hehe
1) milyen ajanlok Qt-hoz? Qt creatort, adja magat, az integralt Designer miatt nem is kell "kivulre" menni
2) milyet hasznalok? semmilyetvim-ben kodolok regota (Qt-t is), imadom, egyelore nem talaltam meg olyan szerkesztot ami a nyomaba erhet, pedig probaltam parat (IDE-kbol pl. Dev-C++, Code:
locks, KDevelop, Qt Creator stb). a Creatorban van ugyan "fake vim", de csak a legeslegalapvetobb vim-es feature-oket tudja, semmi olyan nincs benne implementalva amitol a vim igazan hasznalhato es zsenialis
3) vim guru nem vagyok, de hasznalom es szeretem regota
debugolni nem szoktam vim alol, bar ha jol tudom siman megoldhato, en altalaban vagy trace-elek, vagy ha muszaj szo szerint debugolni, akkor gdb
a kodban ugralassal meg szerintem a ctags-re gondolsz, ehhez nem kell semmi kulonleges, csak legeneralni a tags file-t (a forrasaid legfelso konyvtaraban ctags -R *), aztan a vim-nek elmagyarazni hogy ha az aktualis konyvtarban nem talal tags file-t, akkor menjen feljebb: set tags=tags;
(a vegere a ; kell!)SZERK: 'ugrani' ugy tudsz, hogy az osztaly(vagy barm imas)nevre allva CTRL+] -t nyomsz, visszalepni meg CTRL-t
-
Gyuri16
senior tag
milyen IDE-t ajanlasz/hasznalsz Qt-hoz? (olyan wysiwyg csodara gondolok)
egyelore c-t vimben irok, ami szuper, viszont grafikus cuccot nem igazan tudom elkepzelni vele
(btw ha van itt vim guru, szivesen elbeszelgetnek velefoleg debuggolas erdekel vim alol, illetve olyan -nem tudom a nevet- cucc ami odaugrik egy fuggveny kodjara, illetve vissza, ha egy fuggvenyhivasrol megnyomok egy gombot)
-
doc
nagyúr
csatlakozom a kollega urhoz
bar az nem derult ki, hogy konkretan milyen grafikara gondoltal. ha "ablakos" programokat akarsz irni, akkor sima C-hez meg a GTK passzol (amit mondjuk szivbol ruhellek, de mas normalis valasztas nem nagyon van)a Qt meg hatalmas tutisag
lassan meg a kenyerpiritora is portoljak, csillio nyelvbol hasznalhato (akar Java, Python, Perl, Ruby, Haskell, anyamkinja 1.0) -
-
D.e.x.
csendes tag
-
Karma
félisten
válasz
Korcsii #1739 üzenetére
A Borland és a Turbo is két antik retek, amit csak azért nyomnak az iskolákban, mert a tanárok lusták művelni magukat. Ahogy az előbb is említettem, csak DOS-ban működő móka mind a kettő.
A Dev-C++ teljesen korrekt választás, bár én annyira nem szeretem azt az IDE-t. Anno Code:
locks-ot használtam első félévben, azóta meg XCode-ot.
-
Korcsii
őstag
Sziasztok!
Nos én is csatlakoznék a C klubhoz
Így az érettségire való jelentkezési határidő előtt nemsokkal úgy döntöttem, hogy pascal helyett C-ben fogok programozni (már ha emeltre megyek, mert még ez se biztos). Előzmények: érettségin turbo pascalt nem lehet már használni, csak free pascalt, amivel viszont még nem sikerült barátságot kötnöm - egyrészt nem tudom működésre bírni itthon, másrészt a suliban csak a tanári gépen írja ki a hibákat, a többi gépen csak a hibák számát, és rejtély hogy mért... éppen ezért a két héttel ezelőtti kis próbaérettségi szerűségen nem is tudtam megcsinálni a programozási feladatot (nem röhög: a program neve ugyan az volt, mint az egyik változó neve... hibaüzenettel én is kiszúrtam volna)... mivel félek, hogy a vizsgahelyszínen (emelt szint miatt más iskolában írjuk) sem lesz minden rendben vele, így jobbnak láttam, hogy nyár helyett már most nekiállok a C-nek. Nem, nem őrültem meg, tudom, hogy ez nem megy egyik napról a másikra, de úgy gondoltam, hogy kb egy év Pascal, és több mint 4 év PHP után össze tudom rakni a két nyelvet (előbbiből a programozási tételek, szemlélet, utóbbiból a kinézet, felépítés jött jól).
Az érettségi szoftverlistában Borland, Turbo, és Dev-C++ van felsorolva.
Ezek közül a legutolsót telepítettem fel két hete, és eddig meg is vagyok vele elégedve ("tanulás" közben írtam vele 10 apró programot, ami a fő funkciók/parancsok próbálgatása volt, azután egy program tele prog. tételekkel, majd egy hosszabb program, majd két korábbi érettségi). Szóval úgy néz ki, hogy ok lesz a dolog, de azért megkérdezem:
Ti melyik programot ajánljátok a fenti 3 közül? Avagy kérdezhetném úgy is, hogy van valami ellenjavallat a Dev-C++ ellen? Van valami, amiben a többi program jobb (választás lenne)?
Előre is kösz
-
D.e.x.
csendes tag
Sziasztok!
A prog. előadás oldaláról leszedtem a Turbo C-t, és tartalmaz pár hasznos könyvtárat (első sorban ezért szedtem le).
Viszont a kezelő felület nem valami felhasználóbarát, illetve a fordított fájlok csak DOS-Box alatt futnak...
Van rá mód, hogy a graphics.lib, graphics.h, valamint a hozzájuk tartozó BGI fájlokat beépítsem egy Visual Studio projektbe? (Ha sehogy sem lehet megoldani, akkor az is elég lenne, ha a TC úgy fordítaná, hogy ne csak DOS-ban menjen. Vagy a grap. könyvtár kizárólag dos-ra van?)Köszi a segítséget!
D -
Devdi
aktív tag
Sziasztok.
Mostanában újra el kezdtem programozni...
Nemsoká jön az új félév aztán nem árt feleleveníti a régi dolgokat. Code Blocks-ban programozok és az a baj vele, hogy valamiért mikor azt akarom, hogy az eof-ig kérjen be számokat és írassa ki pl azt, hogy mennyi karaktert írattam be akkor utána mikor nyomok neki egy ctrl+c-t akkor kilép a programból éppen, hogy csak látom, hogy mennyi volt az érték. Azt hiszem, hogy régebben úgy volt, hogy ezt az értéket mindig láttam szóval nem lépett ki azonnal a programból. Ezt hol lehet beállítani a codeblocks-ban vagy inkább valami pause szerűséget használjak?
Ha igen akkor azt hogy?
-
Gyuri16
senior tag
válasz
Scroll Lock #1732 üzenetére
altalaban ugy mukodik, hogy meghivod a fuggvenyt, ha hibat csinal akkor beallitja az errno-t olyan ertekre amibol a programozo valamit megtudhat, es visszater -1-el. az errno egy szam lesz, ezek minden ilyen fuggvenynel le vannak irva a manualban. a linken amit legutobb adtam fel vannak sorolva omlesztve a hibakodok. a kod nem a hiba helyet adja meg, hanem a "fajtajat". tehat pl malloc. kaphatsz ENOMEM hibakodot, ez az jelenti, hogy nincs mar hely, es ne is nagyon bizz benne, hogy lesz, mig EAGAIN azt jelenti, hogy most nem sikerult lefoglalni a helyet, de majd probald meg kesobb.
-
Vasinger!
nagyúr
Kéne egy kis segítség. Sajna lemaradtam egy óráról, ahol elég sok minden fontos anyagot vettünk. Adott is házit a tanár, de azt nem tudom megcsinálni. Ha valaki leírná mit kéne beírnom, megköszönném.
C# -ban Console Application-ben kéne.
A feladat:
Beolvasni egy kitalált nevet, a szöveget és elé tenni, hogy Dr.
Beolvasunk egy stringet és ezeket megtisztítjuk a szóközöktől és kiíratni, hogy hány van.(gondolom karakter)
Beolvasunk egy nevet és csak a keresztnevet írja ki.Így írták le az osztálytársaim is. A sztringkezelő eljárásokat, függvényeket vettük.
Köszönöm előre is a segítséget!
-
sghc_toma
senior tag
az okozza, hogy nincsenek fent az adott gepen a te forditodnak megfelelo runtime library-k.. ket lehetoseged van:
- feltelepititek a runtime-ot (vcredist.exe neven valahol ott van a Visual Studio konyvtaraban, vagy MS-tol is le lehet tolteni)
- statikusan linkeled a runtime-ot az exe-dhez (Project Properties | C/C++ | Code Generation | Runtime Library, es itt /MD helyett /MT) -
Gyuri16
senior tag
válasz
Scroll Lock #1724 üzenetére
nem kell deklaralnod. hasznalni ugy kell hogy eloszor nullazod (ez foleg akkor kell, ha a fuggvenyed amit majd hivsz ha -1et ad vissza, nem feltetlenul hibat jelent). azutan meghivod a fuggvenyed, ha -1-el ter vissza akkor az errno-ban lesz a hiba oka. ezt nem rossz rogton feldolgozni, mert sok fuggveny modosithatja, igy aztan megvaltozhat az erteke
van egy par specialis eset, ezeket nem rossz megnezni a manualban. ugyanitt megtalalod a hibakodokat is
-
D.e.x.
csendes tag
válasz
Scroll Lock #1724 üzenetére
Ha jól tudom, az errno-t a matematika függvények használják (másról nem tudok). A matek könyvtárnak van három fontos makrója: EDOM (értelmezési tartomány hiba), ERANGE (értékhatár átlépés, pl ha a tangens argumentuma nagyon közel van Pi/2, -Pi/2-höz, ahol ugye nincs értelmezve), HUGE_VAL (túlcsordulás). Ha valamelyik előfordul egy fv. hívásánál, akkor a fv. az errno értékét a megfelelőre állítja. Így pl. a biztonság kedvéért le tudod ellenőrizni, hogy nem volt-e valami hiba, ami rossz irányba befolyásolná a futást.
Úgy tudom, hogy a könyvtárak deklarálják (extern int asszem), szóval ezzel nem kell bajolni. -
Scroll Lock
tag
Sziasztok!
Olvastam a netet ugyan de nem igazán akkor leesni, hogy az <errno.h> hogyan kell pontosan használni, meg eléggé sürget az idő Tehát deklarálok egy ilyen nevű változót és hiba esetén hol fog megjelenni a hibakód? Az object file-ban?
Másik kérdésem, hogy az EDOM, ERANGE makrók is hasonlóan működnek? Ha valaki egy rövid leírást adna a témával kapcsolatban azt megköszönném. -
D.e.x.
csendes tag
Sziasztok! Azt mi okozza, hogy lefordítok egy .c fájlt (vagy többet egy projecthez) Visual Studio 2008 Pro-ban, és amikor a létrehozott .exe fájlt valakinek elküldöm, akkor asszem valami Configuration error-ral nem indul. Viszont van akinél indul.
A rendszerem 64 bites, de nem x64-re fordít, ugyanis akinél ment, 32 bites redszer van. És neki is akadt hasonló problémája, hogy az exe fájl nem volt hordozható (nálam viszont ment az övé).
VS beállítási gond lehet?
Ha kevés az információ, akkor igyekszem minél hamarabb pótolni.
Köszi a segítséget!
D -
Dead_slow
tag
válasz
Gyuri16 #1719 üzenetére
Annyira nem szigorúak, csak ha, meg van adva egy feladat, akkor pontosan olyannak kell lennie a kimenetnek mint, ami a példában szerepel, valamint néha kikötnek ezt-azt, hogy azt ne használjuk. A lezáró '\0' jogos, de az én kódomban a gépen szerepel, úgy, hogy vagy töröltem innen lányos zavaromban, vagy csak egy korábbi állapotot másoltam be
Amúgy köszömöm, fgets-et tanulmányozom akkor picit. -
Karma
félisten
-
Gyuri16
senior tag
válasz
Dead_slow #1718 üzenetére
ha a tanaraid szigoruak, akkor meg van par dolog amit lehet ezen javitani:
1. gets nem egy tul jo fuggveny, mert nem ellenorzi a buffer es a bemenet hosszat. buffer overrun lehet a vege. helyette inkabb fgets ajanlott
2. a programod jol lefut, ha olyan bemenetet kap, mint amilyet var, viszont ha csak egy vesszo van a mondat-ban, akkor csunya dolgokat csinal. a while ciklusaidban jo lenne a mondat veget jelzo \0-t is figyelni (ilyenkor valami hibakoddal kilepni)
ez ervenyes az i=i+2-re is
3. a masodik es harmadik stringet nem zarod le \0-val -
Dead_slow
tag
válasz
Gyuri16 #1717 üzenetére
Köszönöm, így már értem
#include<stdio.h>
char mondat[100];
char elso[100];
char masodik[100];
char harmadik[100];
int i,j,k,l;
int main(){
printf("adatok: ");
gets(mondat);
i=0;
do{
elso[i]=mondat[i];
i++;
}while(mondat[i]!=',');
elso[i+1]=='\0';
i=i+2;
j=0;
do{
masodik[j]=mondat[i];
i++;
j++;
}while(mondat[i]!=',');
i=i+2;
j=0;
do{
harmadik[j]=mondat[i];
i++;
j++;
}while(mondat[i]!='\0');
printf("%s\n",elso);
printf("%s\n",masodik);
printf("%s\n",harmadik);
system("pause");
return 0;
} -
Gyuri16
senior tag
válasz
Dead_slow #1715 üzenetére
"nem fogadták el, mondván, hogy a név állhat simán 3 részből is"
az nem gond. amit en irtam az az utolso reszt elolvassa a \n-ig, tehat ilyen is jo lesz:
valami, 2, Abc Efg Hijaz viszont igaz, hogy ezt nem igy kellene megcsinalni, amint azt Jester01 is irta.
azzal amit irtal az a gond, hogy elso, masodik es harmadik stringjeidet i-vel indexeled, ami egyre nagyobb. az elso jo lesz, de a masodikban mar nem a nulladik helyrol kezded feltolteni a stringet. -
Karma
félisten
válasz
Dead_slow #1715 üzenetére
Azért ez üt... "mondván, hogy a név állhat simán 3 részből is".
Semmi szépet nem tudok elmondani az oktatásunk állásáról.Egyébként az lehet baj például, hogy a masodik és harmadik tömbökbe az i. helytől kezdesz el írni, így az első i-1 karakterben vagy szemét van.
Egyáltalán ezek mik? Hogy vannak deklarálva?
-
Dead_slow
tag
válasz
Gyuri16 #1713 üzenetére
Köszönöm, összehoztam bár nem láncolt listával.
Nemrég kérdeztem itt, hogy lehetne beolvasni egy ilyen formátumú(pamacs, 7, Vnev Knev) stringet úgy hogy mind a három adatot külön tárolja el, akkor írtál egy scanf-es megoldást, de azt nem fogadták el, mondván, hogy a név állhat simán 3 részből is, csináljam gets-el ezt mondták. Gondoltam feldarabolom, de valamiért nem akar működni, tudom alap dolog, de mégsem jó, az elsőt még kiírja, de a másodikat illetve a harmadikat már nem. Itt a main fv-m.
int main(){
printf("adatok: ");
gets(mondat);
i=0;
do{
elso[i]=mondat[i];
i++;
}while(mondat[i]!=',');
i=i+2;
do{
masodik[i]=mondat[i];
i++;
}while(mondat[i]!=',');
i=i+2;
do{
harmadik[i]=mondat[i];
i++;
}while(mondat[i]!='\0')
printf("%s\n",elso);
printf("%s\n",masodik);
printf("%s\n",harmadik);
system("pause");
return 0;
} -
Gyuri16
senior tag
válasz
Dead_slow #1711 üzenetére
amit irsz, igy ranezesre jo. tehat tegyuk fel, hogy a beolvasas megvan.
a listaz fv-ben megallapitod a min es max evet amit majd a kimenetbe irsz. itt egy kis bug szerintem, a max-ban a tavozast kellene nezni, nem az erkezest.tovabb az en javaslatom:
lesz egy tombod amit az evvel indexelsz ( (ev-min)-nel konkretan, hogy uljenek az indexek). ez a tombod jegyzi meg az evben ott levo elefantok nevet. Ezt szerintem legegyszerubb lancolt listaval (mivel elore nem tudod, hogy mennyi elefant lesz az adott evben, igy elore nem tudnad a tombot lefoglalni. persze lehet lefoglalni tobbet..)
szoval a tombod minden eleme egy lancolt lista elejere fog mutatni. a lista elemei lehetnek mutatok az elefant structokra. egy ciklusban vegigmesz az osszes elefanton, es az eves tombodbe a listakba hozzaadod a megfelelo evekhez.ha nincs kedved a lancolt listahoz, lehet csinalni tombbel is, akkor lefoglalsz akkora tomboket mint amennyi elefant osszesen van.
ha pedig csak kiiratni kell, akkor lehet akar egyenesen stringbe is gyujteni a neveket evek szerint, ez is kicsit maceras, hiszen oda kell figyelni, hogy eleg hely legyen lefoglalva
lehet mashogy is csinalni, de gondolom nincs egy elefantfarmod ahol tenyleg futna a program -
Dead_slow
tag
Üdv!
Újra segítséget kérek a topik "lakóitól" itt a feladat: Egy elefánt menhelyre nyilvántartó programot készítünk. A program először bekéri a menhelyen megfordult elefántok számát, majd ezután bekéri és eltárolja az elefántok nevét, a menhelyre érkezés évét, valamint a menhelyről távozás évét(lásd a példát).
Eztán a program kilistázza évenkénti bontásban az adott évben a menhelyen tartózkodott elefántok nevét. A listázás a legkorábban érkezett elefánt érkezési évétől a legkésőbb távozott elefánt távozási évéig tart.Pl.:
Elefántok száma: 4
1. Neve: Trombi
Erkezes: 1998
Tavozas: 2001
2. Neve: Frédi
Erkezes: 1999
Tavozas: 2000
3. Neve: Olga
Erkezes: 1998
Tavozas: 1999
4. Neve: Helga
Erkezes: 2004
Tavozas: 2005Kimenet:
1998: Trombi, Olga
1999: Trombi, Frédi, Olga
2000: Trombi, Frédi
2001: Trombi
2002:
2003:
2004: Helga
2005: HelgaJelenleg itt tartok, persze nem biztos hogy így jó lesz:
#include<stdio.h>
struct elefant{
char nev[41];
int erkezes;
int tavozas;
};
struct elefanttar{
int db;
struct elefant *elefantok;
};
void lefoglal(struct elefanttar *pfe){
printf("kerem az elefantok szamat: ");
scanf("%d",&(*pfe).db);
(*pfe).elefantok=(struct elefant*)malloc(sizeof(struct elefant)*(*pfe).db);
}
void beker_elefant(struct elefant *pe){
printf("Neve: ");
scanf("%s",(*pe).nev);
printf("Erkezes: ");
scanf("%d",&(*pe).erkezes);
printf("Tavozas: ");
scanf("%d",&(*pe).tavozas);
}
void beker_elefanttar(struct elefanttar *pet){
int i;
for(i=0;i<(*pet).db;i++){
beker_elefant(&(*pet).elefantok[i]);
}
}
void listaz(struct elefanttar *let){
char c[41];
int sorba[200];
int max=0;
int min=10000;
int i,j,k;
for(i=0;i<(*let).db;i++){
if(max<(*let).elefantok[i].erkezes){
max=(*let).elefantok[i].erkezes;
}
}
for(j=0;j<(*let).db;j++){
if(min>(*let).elefantok[j].erkezes){
min=(*let).elefantok[j].erkezes;
}
}
}
void felszabadit(struct elefanttar *pfe){
free((*pfe).elefantok);
(*pfe).elefantok=NULL;
}
int main(){
struct elefanttar b;
lefoglal(&b);
beker_elefanttar(&b);
listaz(&b);
felszabadit(&b);
return 0;
} -
Jester01
veterán
válasz
Sk8erPeter #1708 üzenetére
Amilyen gyorsan megtanultad, ugyanolyan gyorsan felejtsd is el
Ugyanis semmilyen hibakezelést nem végez így nagyon kiváló túlcsordulást lehet vele csinálni. Persze tehetsz bele max hosszot, de akkor meg azzal kell külön vacakolni, hogy a pufferben maradt szemetet kiolvasd (ugye a példa szerint is benne marad egy enter ami a következő beolvasást megzavarhatja) illetve hogy értelmes hibaüzenetet adj. Szóval kb házi feladat programokhoz jó, egyébként pedig egész sorokat kell olvasni és aztán szépen értelmezni. Macerás, de ez van. -
Gyuri16
senior tag
válasz
Dead_slow #1706 üzenetére
scanf tud olyat, hogy a formazo stringben megmondod neki milyen karaktereket matcheljen. igy kell irni: %[a-z] ez pl azt jelenti hogy mindent a-tol z-ig. negalni lehet ^ jellel, that pl ez: %[^,] azt jelenti, hogy mindent a vesszon kivul. ezt felhasznaljuk ehhez. tehat az elso kettonel (Lili, 7) az elvalaszto a vesszo lesz, a harmadiknal pedig a \n. igy fog kinezni:
#include <stdio.h>
int main() {
char a[80], b[80], c[80];
scanf("%[^,], %[^,], %[^\n]",a, b, c);
printf("%s\n%s\n%s\n", a, b, c);
} -
Dead_slow
tag
Üdv urak nekem is kellen egy kis segítség.
Adott egy feladat amiben az adatok bekérését olyen formán kell megadni, hogy: "Lili, 7, Szabó Gergő"
A kérdés az, hogy hogy tudnám ezt úgy beolvastatni hogy a "Lili" a "7" és a "Szabó Gergő" is egy-egy külön stringben legyen eltárolva.
Köszönöm
Ú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!
- Ohh Lenovo ThinkPad P15 G2 Tervező Vágó Laptop -75% 15,6" i5-11500H 32/1TB RTX A2000 4GB /1 Millió/
- UHH! HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -40% i7-1165G7 16/512 Iris Xe FHD EU-HUN
- IBM PS/1 2168-552 486SX-25
- ASUS ROG Strix RTX 2080 Ti OC 11GB
- Acer Swift 3 (SF314 54) i5 / 8GB RAM / SSD / FullHD / kiváló állapotban!
- BESZÁMÍTÁS! Gigabyte B760M i5 14400F 16GB DDR4 512GB SSD RX 6700XT 12GB Rampage SHIVA CM 750W
- BESZÁMÍTÁS!Gigabyte B650M R7 7800X3D 64GB DDR5 1TB SSD RTX 3080Ti 12GB Corsair 4000D Airflow TG 750W
- VÉGKIÁRUSÍTÁS - REFURBISHED - HP Elite / ZBook Thunderbolt 3 docking station
- BESZÁMÍTÁS! Apple MacBook Pro 14 M2 Pro - M2 Pro 16GB 512GB SSD garanciával hibátlan működéssel
- AKCIÓ! Apple MacBook Pro 16 M4 Pro - M4 Pro 24GB 512GB SSD garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest