Fontos linkek a C-ről:
Prog.hu-s cikkek
Prog.hu-s tudástár témák
The C Library Reference Guide
Standard C
Wikipedia
C Tutorial
Programming in C
Bevezetés a C programozási nyelvbe
Gyorskeresés
Legfrissebb anyagok
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
- Tudástár AMD Radeon undervolt/overclock
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Luck Dragon:] MárkaLánc
- [Re:] PLEX: multimédia az egész lakásban
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [callmeakos:] A bukott koncepció, amiért háromszor is fizettem.
- [Re:] [Argos:] MuzsikAI
- [Re:] [sh4d0w:] Rebel Moon - Ne nézd meg!
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Téma összefoglaló
- Utoljára frissítve: 2014-04-25 14:12:00
LOGOUT.hu
Hozzászólások
[HUN]Zolee
senior tag
pff, x erteket kellett volna odaírnom ..
Köszi!
[ Szerkesztve ]
''<[HUN]DrH>valaki mondjon egy tuningolos programot a mivel kocsis képeket tudok tuningoloni.'' https://ferromag.aranyoldalak.hu/
Dead_slow
tag
HE-HE.
Én is ugyanazt a feladatot kaptam beadandónak, nagyon sokat segítettél
sekli
addikt
Helo,
Keresgeltem google-lal, de nem sikerult megtalalnom a nagy ekezetes betuk HEX ASCII kodjat....,
http://www.idevelopment.info/data/Programming/ascii_table/PROGRAMMING_ascii_table.shtml
ebben amik bennevannak a DevC++ -ban nem jok...
pl a kis 'é'-nek a kodja a DevC++-ban 0x82, ebben a listaban meg nem az van...
ha valaki tudja, hogy hol vannak a jok, az ne tartsa magaban...
PazsitZ
addikt
Nem tudom nekem egy ilyen táblázat [link] van a C könyvemben és nincs benne nagy ékezetes betű.
Ezalapján az é betű nálam is 0x82...
[ Szerkesztve ]
- http://pazsitz.hu -
[HUN]Zolee
senior tag
Örülök hogy segítettem. De máskor inkább magad csináld meg
''<[HUN]DrH>valaki mondjon egy tuningolos programot a mivel kocsis képeket tudok tuningoloni.'' https://ferromag.aranyoldalak.hu/
Jester01
veterán
Mert az attól függ milyen kódlapot használsz. A devC++ nem tudom mit használhat, azok közül amiket hirtelen megnéztem egyikben sem a 0x82 az é betû.
Jester
_Kewr_
csendes tag
Ha valaki tudna nekem mondani egy jó leírást az ncurses használatáról, azt megköszöném.
.DLL
veterán
Előzmény (C++ topic):
DLL:
Üdv! Levelezőn kezdtem C-t tanulni és egy olyan kérdésem lenne hogy milyen függvénnyel lehet karaktert tesztelni, hogy az szám-e vagy betű-e (pl. ahova számot kér a progi ne lehessen kiakasztani betű beírásával.
getch(); esetén elvileg az ASCII kódtábla alapján lehet szűrni hogy csak a 0x30 és 0x39 közötti karaktereket (amik elvileg 0-9-ig a számok) engedje bevinni, de ha scanf( );-el kérek be adatot akkor hogyan lehet ezt megoldani?
Előre is köszönöm a segítséget!
Jester01:
%[0-9]
De ez C nem C++
--------------------------------------------------------
Nos, ezt elvileg így gondoltad scanf("%[0-9]",&a); ? mert így elég fura dolgokat tesz az a-ba:
int a;
main()
{
clrscr();
printf("szám beírása:");
scanf("%[0-9]",&a);
printf("eredmény: %d",a);
getch();
}
bármilyen számot írok be egész más lesz belőle.
Bocs a noobságért tényleg nemrég kezdtem, és nincs is az hogy bemegyek hétfőn és megkérdezem a tanárt..
[ Szerkesztve ]
(P.H.)
Protezis
őstag
Egy lehetseges megoldas: atoi()
sekli
addikt
Köszi szépen, PazsitZ neked is... es van valami lehetoseg, hogy megis legyenek nagy ekezetes betuk...? A DevC++-t nem nagyon szertetnem lecserelni, nem mintha nagyon jonak tartanam, csak mar nem nagyon van idom befelyezni, amin most munkalkodom...
[HUN]Zolee
senior tag
Megint rakoncátlankodik az progim. Valamiert az ertekadásnál az i=0 , j=1 után hibával elszáll mintha nem lenne több memóriacím lefoglalva.
struct mezo{
int szin;
struct babuk *babu;
};
struct mezo*** init(int sor){
int i,j;
struct mezo ***t;
t=(struct mezo***)malloc(sor*sizeof(struct mezo**));
for (i=0;i<sor;i++) {
t[i]=(struct mezo**)malloc(sor*sizeof(struct mezo*));
}
for (i=0;i<sor;i++){
for (j=0;j<sor;j++) {
t[i][j]->szin=0;
t[i][j]->babu=NULL;
printf("i: %d j: %d\n",i,j);
}
};
return t;
}
nem értem miért csinálja ezt velem.
''<[HUN]DrH>valaki mondjon egy tuningolos programot a mivel kocsis képeket tudok tuningoloni.'' https://ferromag.aranyoldalak.hu/
Jester01
veterán
Hát mert az elemeket nem foglaltad le egyáltalán.
Jester
.DLL
veterán
Ez kellett, sőt a társai is jók (atol, atof) köszi szépen!!
Nem lett nagy szám, de kíváncsi vagyok a véleményetekre: Progi (zip)
[ Szerkesztve ]
(P.H.)
[HUN]Zolee
senior tag
francba, nem csökkentettem a mutatók számát, látszik hgy még új nekem ez.
Köszi
''<[HUN]DrH>valaki mondjon egy tuningolos programot a mivel kocsis képeket tudok tuningoloni.'' https://ferromag.aranyoldalak.hu/
Orb1337
tag
Halihó!
Valaki megtudná csinálni ezt a progit nekem:
Készítsen programot, amely szavakat kér be pont végjelig, s ezekből a szavakból összeállít egy mondatot úgy, hogy az egy külön stringként legyen letárolva. Ezután számolja meg a mondatban található kisbetűs rövid magánhangzókat.
A felévi jegyem múlik rajta.
.DLL
veterán
Én megpróbálom, már a magam gyakorlására, a fenti kis gyakorló progit is egy hétig írtam, bár miután itt kérdeztem, és választ kaptam már gyorsan ment! Rám is vár egy zh pótlás és egy vizsga is, (csak nekünk ott adják ki a feladatot..) :\
(P.H.)
rOwLeY
őstag
Emberek, lenne vki estleg vmi fejében vállalna nekem beadandó házi megírást?!BME villany első félév!
darnellsmith
senior tag
1. Ellenőrzötten bekér egy pozitiv egész számot. A számnak 100 és 200 közé kell esnie. Az elfogadott értéket nevezzük n-nek.
2. Ezután n darab pozitiv háromjegyű egész számot kell végtelenszámgenerátorral előállítania és közben képernyőre 4 pozicios mezőszélességgel kiiratnia.
3.a végén jelenitse meg hogy a generált számok közül hány darab volt páros és hány darab volt páratlan.
vki segitsen pls
Oakley Jawbone Retina burn black iridium eladó!
Lortech
addikt
Házikkal legyetek szivesek máshova fáradni, ez nem az "itt a házim csináld má' meg" topik!
Ha elkezditek, látni valamit, hogy próbáljátok megoldani, biztos lesz segítség is.
Thank you to god for making me an atheist
(#170) darnellsmith válasza darnellsmith (#168) üzenetére
darnellsmith
senior tag
sürgős lenne, pls HELP
Oakley Jawbone Retina burn black iridium eladó!
doc
nagyúr
most lettél leb@szva
ott a prog.hu, ott direkt van házikészítős topic...
Dead_slow
tag
Ok, úgy lesz. Örülök hogy segíthettél
ceginner
csendes tag
Sziasztok Sorstársak!
Elakadtam a 2. kötprogival és egy kis segítség kellene. Konkrétan a LÁDAPAKOLÁS lenne a téma. Konkrétabban: Egy gyárban egy nap csak azonos súlyú termékeket gyártanak és ezeket ládába pakolják, egy ládában max. 100 kg lehet. Egy nap max. 1000 db-ot készítenek egy-egy S súlyú termékből... Azt hogy melyik ládába pakoljunk a legkisebb négyzetek módszerével kellene megkeresni, de sehogy sem sön ki az adott kimenet. Mit ronthattam el?
Bemenetben az első szám a napok száma, a második két szám pedig db és súly.
Már nem ez az első verzió, de már tisztára belezavarodtam. Nem tudom hogyan kellene megírni jól az algoritmust, hogy 100 db fölötti adatokra is jól működjön.
Pl.: Bemenet:
1
347 6
Kimenet:
0000010000010000010000010
0000100000100000000000100
0001000001000001000002000
0020000030000040000060000
Az első sor első eleme, az egy kilós ládák száma - és így tovább egyészen százig...
Az általam írt kód:
#include <stdio.h>
#define M 1000
#define N 100
int Sulyok[M+1]={0};
int Darabok[N+1]={0};
int darab(int suly)
{
int j,s;
int r=1;
s = suly;
for(j=0;j<N;j++)
if (Sulyok[j] == s) r+= 1; //else r=N-1;
return r;
}
void pakol(int db,int s)
{
int K=0,a=0;
int i=0,j=0,k=1,l=0;
int opt=0;
int szumma=1000;
int NAGYSZAM = 10000;
int ossz;
int suly;
ossz = db*s;
suly = s;
Sulyok[0] = s; //az első elemet betesszük
while(i <db){
if ((s == 1) && (suly%100 != 0)) {Darabok[99] = db/10; Darabok[0] = 0;/*Darabok[100-Sulyok[k-1]]-=1;*/}
if (Sulyok[k-1] <= 100)
{
if (suly != 1) Sulyok[k] += suly;
// k+=1;
szumma = darab(Sulyok[k-1]+s)*darab(Sulyok[k-1]+s); //gyakorisag az uj suly berakasa utan
if (szumma <= NAGYSZAM)
{opt += 1;
NAGYSZAM = szumma;
k=i;
if(opt >= 1)
for(l=0;l<=k;l++)
{
if(Sulyok[l] > K) {K=Sulyok[l]; k=l;}
}
} else k+=1; //ha ezek a feltetelek nem teljesulnek uj lada kell
/ if (Sulyok[k] == (100-Sulyok[k])) {Darabok[100] += 1;}
Darabok[Sulyok[k]-1] += 1;
}
i += 1;
}
}
void kiir2(){
int i=0,j,k,l,m;
FILE* ki;
ki=fopen("ki.txt","w");
while(i<4){
for (j=0;j<N/4;j++){
if (i>0) k = (i*25)+j;
fprintf(ki,"%d ", Darabok[((i*25)+j)]); }
i+=1; fputc('\n',ki);}
fclose(ki);
}
int main()
{
int i;
int nap,suly,db;
FILE* in;
in=fopen("be.txt","r");
fscanf(in,"%d",&nap);
if (nap >=1 && nap<=10)
for (i=0;i<nap;i++){ fscanf(in,"%d %d",&db,&suly);
if (db >= 1 && db <= 1000)
if (suly >=1 && suly <=100) {
//feldolgozhatjuk az adatokat
pakol(db,suly);
}
}
kiir2();
fclose(in);
return 0;
}
Minden segítséget és hozzászólást előre is köszönök!
PazsitZ
addikt
Hát, nekem is ki volt ez osztva mint lehetséges kötprog. Meg is csináltam, de nem tökéletes. Bizonyos inputoknál, valahol hibázik.
Most sajna nincs energiám belekezdeni még a saját kódom fejtegetésébe sem, de ha gondolod elküldhetem az én progimat, ha az segít valamit.
- http://pazsitz.hu -
ceginner
csendes tag
Minden segítség jól jöhet! Lehet, hogy pont találok benne valami olyat, ami sokat segít.
Már vagy 7 verziót írtam, 5-öt töltöttem fel eddig, de 0 pontot kaptam rá. Annál csak jobb lehet. Akkor légyszi küldd már el...
PazsitZ
addikt
Ezen:
2
1000 1
5 49
és ezen:
3
1 91
1 93
1 1
inputokra jó eredményt ad.
A többire sajnos csak részben, pl. ahol kisebb számok lennének "elhagyja" és a többihez pakolja.
[link]
Remélem segít valamit.
[ Szerkesztve ]
- http://pazsitz.hu -
ceginner
csendes tag
Köszönöm Szépen Zoli!
Meg fogom nézni hamarosan, sokat segítettél ezzel!
Tv
senior tag
Szevasztok! Volna egy olyan gondom, hogy nemtudom hogy C-ben egy szöveges fájlból soronként beolvasni. Tehát az szeretném, hogy beolvasom a fájlt soronként és minden soban megvizsgálom, hogy benne van-e egy adott szó, és ha igen, akkor az adott sorf kiírom egy másik fájlba. Eddig annyira jutottam, hogy a fájlkezelés része kész van. De ez így csak a egy szónál működik(pl. "alma"), (még nem kinlódtam a kereséses résszel). A legfontosabb a soronkénti sztringe olvasás volna, a többi részét szerintem meg tudom oldani majd.
#include <stdio.h>
#include <stdlib.h>
main()
{
FILE *f1;
char buff[1024];
int i=0;
if ((f1=fopen("text1.txt","r"))== NULL)
{
printf("Nem letezik a text1.txt allomany!\n");
exit(-1);
}
else
{
while (fgets(buff,1024,f1))
{
printf("%s",buff);
}
fclose(f1);
}
if (strcmp(buff, "alma") == 0)
{
FILE *f2;
f2 = fopen("text2.txt", "w");
fprintf(f2, "%s",buff);
}
}
Köszi előre is.
shev7
veterán
az fgets nem soronkent olvassa a filet?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Tv
senior tag
az bizony lehet. Akkor itt lesz a gond: while (fgets(buff,1024,f1)) . Vagyis ezt a ciklust kellene kibővíteni? Ebbe kellene beletennem a vizsgálatot, meg a második fájl-ba való írást?
shev7
veterán
peldaul
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
Tv
senior tag
Nah sikerült megcsinálni a nagy részét a feladatnak, már csak azt nem tudom, hogy hogyan kellene megcsinálni, hogy mindegyik sornak a végét hasonlítsa össze egy előre megadott sztringgel. Tehát ha az előre megadott sztring pl. az, hogy "alma" , akkor azt nézze, hogy a sor az alma szóval zárul-e vagy sem. Erre esetleg van ötlete valakinek?
Tv
senior tag
Már tárgytalan sikerült megoldani
Tv
senior tag
Szaszok! Már megint gond van minygyárt megőrülök. A progit megírtam, működik is rendesen windóz alatt, de linux-on az istennek se akar. Vetnétek rá egy pillantást lécci? Fontos lenne . Köszi előre is. A gond valahol a sztringek összehasonlításánál lehet.
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int maxsorh(FILE *f2)
{
int x=0;
int y=0;
char str[1024];
if ((f2=fopen("text2.txt","r"))== NULL)
{
printf("Nem letezik a text2.txt allomany!\n");
exit(-1);
}
else
while (fgets(str,1024,f2))
{
printf("%s",str);
x=strlen(str);
if(x>y)
{
y=x;
x=0;
}
}
printf("A text2.txt fajl leghosszabb soranak hossza: %d\n",y);
}
void rev(char* s)
{
int i, j= strlen(s)-2;
char temp;
for (i=0; i < j; i++, j--)
{
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
}
main()
{
FILE *f1;
FILE *f2;
char buff[1024];
int i=0;
char szo[]="alma\n";
rev(szo);
if ((f1=fopen("text1.txt","r"))== NULL)
{
printf("Nem letezik a text1.txt allomany!\n");
exit(-1);
}
else
{
while (fgets(buff,1024,f1))
{
printf("%s",buff);
rev(buff);
printf("%s",buff);
if (strncmp(buff,szo,4) ==0 )
{
f2 = fopen("text2.txt", "a");
rev(buff);
fprintf(f2,"%s",buff);
fclose(f2);
}
}
printf("\n");
fclose(f1);
}
maxsorh(f2);
}
doc
nagyúr
esetleg a "nem működik"-nél pontosabb hibaleírást is tudnál adni?
így elsőre nem lehet hogy az idióta dosos sorvégek kavarnak be?
Tv
senior tag
De szerintem is az! Vagy amikor a fájlból olvasom be a sorokat, majd megfordítom őket, valamit másképp csinál a linux, mint a win?
Ezt a sorvéges dolgot nem vágom. Win alatt mikor beolvasok egy sort, akkor a végét a C \n-ként kezeli. Linux alatt ez hogy van?
Mert ott hibázik a progi, ahol a beolvasott és megfordított sorokat hasonlítja össze a másik megfordított sztringgel
[ Szerkesztve ]
Tv
senior tag
Nah végre magoldódott a rejtély . A linux-ban a C a sorvégeket $-jellel kezeli. Minden működik.
doc! Köszi a segítséget. Ha nem mondod sose jutott volna eszembe
doc
nagyúr
$ jellel? na ilyet sem hallottam még
alapvetően az a probléma, hogy a sorvéget alapvetően háromféleképpen szokás kezelni
Linux alatt a sorvégeket a \n zárja le (10-es karakter)
OSX alatt ha jól tudom a \r (13-as)
DOS alatt meg valami elmebeteg okból kifolyólag mindkettő egyszerre (\r\n), de ezt a dos/windows-os C programok egy karakterre fordítják
viszont mikor Linux alatt olvasod be a file-t, azt látja hogy a sor legutolsó karaktere egy \r, majd utána jön csak a sorvége
Tv
senior tag
Hát igen a linux képes ilyen csodákra . Nekem is csak úgy beugrott, mikor mondtad a sorvéges dolgot, hogy van valami $ jeles dolog is . Mondom kipróbálom nincs mit veszteni, erre jó is lett egyből, minden működik ahogy kell. Az volt a gáz, hogy xp alatt írtam a progit, ment is jól, aztán ftp-n feltöltöttem linux-ra, és ott putty-on át akartam volna fordítani, futtatni.
sghc_toma
senior tag
számunkra fura dolgot találtunk tegnap programozás közben.. a kódban maradt egy olyan sor, hogy zárójelben egy pár érték, valahogy így: (4, "sdfg", 23).. A kód lefordult, a progi működött.. megnéztem objdump-pal ennek a két forrásnak megfelelő progit:
int main() {(1,2,3,4); printf("qwer"); return 0;}
, illetve
int main() {printf("qwer"); return 0;}
semmi különbség nincs az assembly kódok közt...
a kérdésem: ez mitől "érvényes" kód c-ben, c++-ban?
in asm we trust
Jester01
veterán
Mert csak A zárójel meg a számok rendben vannak, a vessző meg operátor.
Jester
doc
nagyúr
létezik egy ilyen megoldás, ez csak annyit csinál, hogy a zárójelen belüli, egymástól vesszővel elválasztott parancsokat lefuttatja
a szám meg ugye elmegy parancsnak
sghc_toma
senior tag
OK, kösz mindkettőtöknek.
in asm we trust
plaschil
aktív tag
Sziasztok!
Van egy progim, és az a kikötés hogy az STDERR-re kéne kiíratni a hibaüzeneteket. (Nem STDIO-ra.) Hogy kell ezt megcsinálni?
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
doc
nagyúr
fprintf(stderr,"hibauzi");
PazsitZ
addikt
Pl.:
fprintf(stderr, "Fatal Error #2212. We're hosed");
Mod "picit" elkéstem
[ Szerkesztve ]
- http://pazsitz.hu -
plaschil
aktív tag
Köszönöm szépen. és miért fprintf-fel írtátok?
Sima printf-fel nem jó?
Ehhez kell valamit includálni? Vagy elég az stdio.h?
[ Szerkesztve ]
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
doc
nagyúr
a sima printf csak stdio-ra ír, az fprintf-nek meg tudod mondani hogy melyik file-ba írjon (ebben az esetben az stderr-re)
MOD: stdio.h elég
[ Szerkesztve ]
plaschil
aktív tag
Segítsetek légyszi ha tudtok!
Olyan progit kell írnom ami összehasonlítja két fájl tartalmát. vagy két adott fájlt, vagy egy adottat és egy begépeltet. na a két adott fájl rész már lefut. szépen ki is írja hogy hol nem egyezik a két fájl. de a második része nem jó valamiért. begépelem a szöveget, el kéne elvileg mentenie egy txt-be, és utána összehasonlítania egy másik adott txt-vel. de mikor entert ütök, hogy jelezzem befejeztem a fájl írását, nem tudom elkezdi -e összehasonlítani, mert segmentation fault (core dumped)-del kilép.itt a második része a proginak.
case 2:
printf("Gepelje be a szoveget, majd usson egy entert!\n");
f2=fopen("haha.txt","w+");
scanf("%s",&f);
fprintf(f2,"%s",f);
b=1000;
for(a=0;a<b;a++)
//while((e=getchar())!=EOF)
{
c=getc(f1);
d=getc(f2);
if(c!=d)
{
//printf("%c", c);
//printf("%c ", d);
break;
a++;
}
}
//a++;
if(a!=b)
{
fprintf(stderr, "\n A ket szoveg ettől a karaktertol nem egyezik: %d", a);
getchar();
}
if(a=b)
{
getchar();}
fclose(f1);
fclose(f2);
break;
break;
}
}
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
plaschil
aktív tag
Ami a // után van, az ki van kommentezve. Még egy kérdés mik a lényegesebb különbségek a struct és az union között?
[ Szerkesztve ]
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
Téma tudnivalók
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!