- Apple notebookok
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- AMD vs. INTEL vs. NVIDIA
- Hivatalosan is elkészült az NVIDIA App
- Azonnali alaplapos kérdések órája
- Vezetékes FEJhallgatók
- Milyen egeret válasszak?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Házimozi belépő szinten
Új hozzászólás Aktív témák
-
Kurik
tag
hm...aha ez is jó progi de mi csak turbo c-t használhatunk vizsgán és azért akartam azon gyakorolni...ha másnak van ötlete azért meghallgatom
Ha tévedek, ki lehet javítani :)
-
bpx
őstag
tudsz:
- c++ projektet kell létrehozni (win32 console app pl.)
- wizardban bepipálod, hogy üres projekt legyen
- és C header-öket/szintaktikát használsz(#2201) Kurik: na akkor még jobb lesz a CodeBlocks
Turbo C megenged bármit, ebben jobban megtanulsz programozni[ Szerkesztve ]
-
Zalaymate
senior tag
Hali!
Volna egy beadandó feladatom, amit hétfőn le kell adnom, de nekem ez még magas így csípőből és ezért kérném a segítségeteket!
Egy kis programot kell írnom sima C-ben, ami tulajdon képpen egy kis adatbázis kezelő program.
Elég ha a konzolban fut és ott írja kis a következőket:
Alap menü:
1. Új adat bevitele
2. Adat módosítása
3. Keresés
4. Listázás
5. KilépésAz egyes menüpontokból vissza kell tudjon lépni a főmenübe.
Az adatoknak pedig 3 tulajdonságuk kell legyen: sorszám, név, adat (szöveg)
Lenne erre ötletetek? Elég gázos a helyzet....
(= Zala =)
-
Peteeke
csendes tag
válasz Zalaymate #2204 üzenetére
Szia!
Nekem volna erre egy példám.
Nekem is kelett ilyen menüszerkezetet csinálnom.int main()
{
int ch;
while(ch!=27)
{
menu();
ch=getch();
switch(ch)
{
case'1':ascii();break;
case'2':file();break;
case'3':kor();break;
case'4':szamol();break;
}
}
return 0;
}
void menu()
{
printf("\n\n\t M\tE\tN\tU\t\n");
printf("\n\n");
printf("\t1. ASCII kodtabla\t\n");
printf("\t2. Szoveges fajl letrehozas\t\n");
printf("\t3. Kor keruletenek es terulet‚nek kiszamitasa\t\n");
printf("\t4. Szamologep\t\n");
printf("\tESC Kilepes\t\n");}
Íme ittvan.a menüt switch -case sel oldaottam meg a ch!=27 aztjelenti,hogy Esc-re kilép.A Menük nevei külön függvényben vannak.Ez egy komplett menü,Ha ezt beírod márcsak hozzáírod a többi alfv-t és kész
A processzor füsttel működik. Ha kimegy belőle a füst, nem működik tovább.
-
CPT.Pirk
Jómunkásember
Ha így kérek be szöveget:
int main(int argc, char **argv)
Akkor hogy lehet hozzá alakítani az strlen függvényt?
strlen:
int strlen(const char *s)
{
int len = 0;
while(*s++) len++;
return len;
}Meg kellene számolnom a bemenetre érkező betűket az strlen() használata nélkül.
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
CPT.Pirk
Jómunkásember
Valami biztos, de honnan? Csak a lényeget copyztam be.
Szóval a standard inputra érkező karaktereket szeretném megszámolni.
Pl. progi.exe asd fgh jklmAz simán megy, hogy hány argumentumom van, meg azokat ki is tudom íratni, de argumentumot karakterenként kiírni nem tudom, az nem akar sikerülni.
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
Gyuri16
senior tag
válasz CPT.Pirk #2210 üzenetére
remelem ez segit:
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
int i;
for (i=0; i<argc; i++) {
printf("argv[%d] = ",i);
printf("%s\n", argv[i]);
printf("strlen: %d\n", strlen(argv[i]));
printf("betunkent:\n");
int j = 0;
while (argv[i][j++]) {
printf("%c\n", argv[i][j]);
}
// pointeresen:
char * a = *(argv+i);
while (*a++) {
printf("%c\n", *a);
}
}
return 0;
}Nem vagyok egoista, csak uborkagyalu!
-
bpx
őstag
válasz CPT.Pirk #2210 üzenetére
a szövegbekérést hiányoltam, de most már látom, hogy a parancssori argumentumokra gondoltál
a problémát még mindig nem teljesen értem, ha már sikerült kiíratni az argumentumokat egyenként, akkor a hossznak is mennie kellene
ha az argv-t próbálod karakterenként kiíratni az nem fog menni (char ** ugye)ciklussal végigmész az argv-n, azzal minden egyes lépésben egy adott argumentumot vizsgálsz, egy belső ciklussal meg magán az aktuális argumentumon mész végig, pl.
int i, j = 0;
for (i = 0; i < argc; i++)
{
printf("argv[%d] - ", i);
for (j = 0; argv[i][j]; j++)
{
printf("%c", argv[i][j]);
}
printf(", hossz: %d\n", j);
}szerk: ja persze, én közben telefonáltam is és megelőztek
[ Szerkesztve ]
-
CPT.Pirk
Jómunkásember
Köszi srácok! A belső ciklust felejtettem el megcsinálni, így most jó lett:
- a szóközt is számolom, az első szóköz és a lezáró 0 közti karaktereket számolja
#include <stdio.h>
int i, j, len = 0;
int main(int argc, char *argv[]){
for (i = 1; i < argc; i++)
for (j = 0; argv[i][j]; j++)
len++;
len = len + (i-2);
printf("hossz: %d\n", len);
return len;
}Hogyan lehet az argc, *argv[] -vel bekért karaktereket egy másik függvény számára átadni? Igazából úgy lenne frankó, ha a számolás nem a mainben lenne, bár így sem rossz.
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
CPT.Pirk
Jómunkásember
Hmm, ezen az argc argv-s módon egyáltalán van lehetőség a szóközök számolására? Mert ha csak egy sima stringem van, akkor ott simán meg lehet számolni benne mindent, de így meg nem érkezik szóköz a bemenetre...
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
Jester01
veterán
válasz CPT.Pirk #2215 üzenetére
1. A programokat az operációs rendszer indítja, tipikusan másik programok kérésére. A main függvény argv/argc paraméterei a c/c++ nyelv szabványosított formája a program argumentumok kezelésére (mármint nem a nevükre gondolok itt, mert az ugye bármi lehet). Az argumentumokra általában nincs olyan megkötés, hogy nem tartalmazhatnak szóközt. Ha tehát a hívó program beleteszi őket, akkor te meg is fogod kapni. Vagyis csak az a kérdés, hogy a hívó programot hogy veszed rá erre. Windowson a hívó például lehet a parancsablak, a cmd.exe. Ezesetben értelemszerűen idézőjeleket használva valószínűleg jó lesz. Továbbá, ha nem platformfüggetlen kódot írsz, akkor windowson egyben is lekérheted az egész parancssort, a GetCommandLine függvénnyel (bár nem tudom a szóközökkel ezesetben mi lesz).
2. Az argv továbbadása. Az argv nem valami mágikus paraméter, csak egy sima string tömb. Mint ilyen, természetesen akár egészben akár darabokban továbbadhatod másik függvényeknek, pont úgy mint bármilyen más string tömböt. Az argc meg csak egy szerencsétlen int, azzal még ennyi gond sincs.
Jester
-
CPT.Pirk
Jómunkásember
válasz Jester01 #2216 üzenetére
Az a gond, hogy az egyszerű dolgokhoz bevált linuxos gcc-s fordítás nem akar menni nálam, vagyis a lefordított fájlt nem engedi futtatni, hozzáférés megtagadva hibát kapok, aztán emelt hozzáféréssel meg valami ) zárójelet hiányol, de nem a programom hibás, mindegy neki h. mit fordítók le, még egy hello wordnél is ez van, így most kénytelen vagyok win alatt csinálni.
Arra sajnos nem jöttem rá, hogy Linuxon CodeBlocks-al hogyan lehet lefuttatni úgy, hogy kapjon is valami argumentumokat.Szóval akkor win alatt egyszerűen a cmd szedi ki a fölösnek ítélt spaceket?
Átírtam most külön fgv-be a dolgokat, valamint tettem bele vizsgálatot arra, ha nincs argumentum.
#include <stdio.h>
int i, j, len = 0;
int strLen(int argc, char *argv[]){
for (i = 1; i < argc; i++)
for (j = 0; argv[i][j]; j++)
len++;
if(i==1){
len = 0;
}
else
len = len + (i-2);
printf("hossz: %d\n", len);
return len;
}
int main(int argc, char *argv[]){
strLen(argc, argv);
return 0;
}warningot nem kaptam, korrekt amit csináltam?
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
kirket
csendes tag
Hali!
Sima C programba szeretnék usb joystick-ot kezelni csak nem tudom hogy lehet, a neten találtam C++-os példákat de sima C-set nem. Pedig gondolom nem lehet nehéz mert a Windowsnak van játékvezérlő kezelő alkalmazása.
Ha valaki tud valamit ajánlani vagy példa kódot adni azt meg köszönném. -
Jester01
veterán
válasz CPT.Pirk #2217 üzenetére
Ha bővebbet tudnál mutatni a linuxos hibáról akkor abban esetleg tudnánk segíteni.
Ami a kódot illeti: az i,j,len változókat kirakni globálisba nem szép dolog, tedd őket bele az strLen függvényedbe. Az if (i==1) len=0 felesleges mivel ha nem volt argumentum a len úgyis nulla. Az i-t ellenőrizni pedig megtévesztő, hiszen tulajdonképpen az argc-t akarod vizsgálni (persze az értéke ugyanaz lesz, csak logikailag gubancos).
Továbbá szebb lenne, ha a kiírás nem az strLen-ben lenne, hanem a main-ben az strLen visszatérési értéke alapján.
Ha jól értem a logikát, akkor az argumentumok között egy szóközt feltételezve korrigálod a hosszt. Ez ugye addig jó amíg tényleg annyi van. Ha a felhasználó egyetlen argumentummal futtatja akkor nyilván jó eredményt fog adni egyébként.
$ cat >test.c
#include <stdio.h>
int strLen(int argc, char *argv[]) {
int i, j, len = 0;
for (i = 1; i < argc; i++)
for (j = 0; argv[i][j]; j++)
len++;
if (argc > 2) len += argc - 2;
return len;
}
int main(int argc, char *argv[]) {
printf("hossz: %d\n", strLen(argc, argv));
return 0;
}
$ gcc -Wall -O2 test.c
$ ./a.out hello world
hossz: 11
$ ./a.out "hello world"
hossz: 11
$ ./a.out hello world
hossz: 11
$ ./a.out "hello world"
hossz: 13Jester
-
CPT.Pirk
Jómunkásember
válasz Jester01 #2220 üzenetére
Linux alatt (mint10, Ubuntu alapú) a gcc hiba nélkül megcsinálja az a.out fájlt, csak mikor futtatnám ./a.out, akkor kiírja, hogy hozzáférés megtagadva. Sudo meg sh, stb.-vel futtatva meg azt írja, hogy egy ")" hiányzik, de nem írja honnan. Az biztos, h. nem az én kódomból, mert akármit fordítok le, mindig ezt hiányolja. A 9-es mintel még simán forítottam gcc-vel.
Egyébként igen, 1szóközt feltételez a dolog, ha jól néztem, win alatt a több szóköz is csak egynek számít a cmd-ben.
[ Szerkesztve ]
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
CPT.Pirk
Jómunkásember
Ha jól emlékszem volt, de adtam neki minden jogot a chmod-dal, és az sem segített. Ráadásul 2 telepített mint 10 van nálam, és mind a kettőn ez a helyzet.
[ Szerkesztve ]
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
tener
csendes tag
Üdv.
Segítséget kérnék C nyelvű programozásban, elakadtam egy programnál és segítségre volna szükségem! Aki tud segíteni, Neki megköszönném, és akár pénz fejében is honorálnám.
Köszönöm előre is! -
kolyka
csendes tag
Sziasztok!
Az a helyzet h nem értek a programozáshoz. Kaptam egy programot, ami elvileg működik és ezt be kell mutassam a tanáromnak. Csakhogy a gond ott kezdődik, hogy el is kell neki magyarázni... Szóval szeretném, hogy valami hozzáértő ember átnézné a progit és irna nekem egy kis leírást róla! A program C nyelven íródott!
Feladat: Írja meg a strlen() függvényt
Tipp: a függvény működéséről itt olvashat. (http://www.gnu.org/software/libc/manual/html_node/Copying-and-Concatenation.html#Copying-and-Concatenation)
Szükséges libc függvények: printf()
A kapott progi: (main.c)#include <stdio.h>
#include <stdlib.h>int main(int argc, char *argv[]){
int i=0;
int strlen=0;
for(i=1; i<argc; ++i){
strlen=checkstrlen(*argv++);
printf("karakterekc:%d\n",strlen);
}
return 0;
}És még egy hozzá: (check.c)
int checkstrlen(char *str){
int charlen=0;if (!str)
return 0;while(*str)
*str++;
charlen++;return charlen;
}Válom mielőbbi segítségeteket! Előre is köszi
-
CPT.Pirk
Jómunkásember
Hmm, milyen ismerős ez a feladat a villany karról.
Az első csak annyit csinál, hogy kiírja, amit a program kapott a standard input bemenetére, szavanként.
A második egy pointerrel dolgozik, de ezeket így egy fájlba kellene tenni, hogy a standard inputra érkező szöveget megszámolja karakterenként. Egyébként nem tudom, hogy a prog1-eseknek kell-e pointerrel dolgozniuk, mintha az a prog2 anyaga lenne, már régen volt. Ilyen megoldást a prog3-ban használtunk stringek nézegetésére.
Egyrészt használd a programkód gombot kód beillesztésekor, másrészt picit olvass vissza pár hozzászólást, ha már az strLen()-t írod.
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
kolyka
csendes tag
-
CPT.Pirk
Jómunkásember
Figyelj, nem állok neki kommentezni, ezt a progit nem látom át. Pár hsz-el arrébb írtam egy strlen-t, ami nem tökéletes, a több szóközt is egynek számolja, de attól független működik, és érthető.
Azt esetleg kommentezhetem, csak aztán Zamek kérdez egyet keresztbe, és hopp... Ráadásul azt a kódot is egy sorstársadnak írtam, jobbat per pill nem tudok.Szal azt mondom, ha át akarsz menni a tárgyból, akkor a C könyvet olvasd el, aztán googlere fel, for ciklus, string műveletek, stb.
Nincs más - csak egy szál gitár - szidom a rendszert - forradalmár. - Én vagyok egyedül 88 telén. (Auróra)
-
bpx
őstag
2 "apróság":
1. a checkstrlen függvényben a charlen változó növelését is a ciklusba kellene tenni, mert így ha nem üres a string, mindig 1 lesz az eredmény
while(*str)
{
*str++;
charlen++;
}2. mainben a ciklus nem az igazi
jelenlegi formájában soha nem vizsgálja az utolsó argumentumot
a számolást 1-től kezdi, de a feldolgozást meg a 0. elemtől, így mikor eléri a ciklus végét (argc), akkor még marad 1 feldolgozatlan argumentumlegegyszerűbb pl. a ++ operátort postfix-ről prefixre cserélni (ugye az a különbség, hogy az előbbi csak a kiértékelés után növel, míg utóbbi már előtte)
strlen=checkstrlen(*++argv);
[ Szerkesztve ]
-
Carpigabi
csendes tag
Hali!
Tudna vlki írni / linkeli egy forráskódot, ami kiszámolja egy n csucsu graf. kromatikus számát? -
Gyuri16
senior tag
válasz Carpigabi #2235 üzenetére
ez altalanosan egy NP-teljes problema. en nem ismerek semmilyen ertelmes algoritmust, es ugy tudom nincs is ilyen, szoval marad kiprobalni az osszes lehetoseget. kesz programom nincs, de megirni nem nagy feladat.. persze lassu lesz, de jobb nincs.
google talal egy par approximalo algoritmust, esetleg azokat is ki lehet probalni, attol fugg mire kell.
Nem vagyok egoista, csak uborkagyalu!
-
Carpigabi
csendes tag
válasz Gyuri16 #2236 üzenetére
Egy iskolai feladathoz kellene:
Katonai egyenruhakat kellene gyártani, h a haboruban levo orszagok egymast megtudjak különböztetni.
A bemeneti adat:
1.orszag - 2. ország .... ahol 1.orszag szomszédja és ellensége a 2. orszagnak.
eredményben tehát kikell szamitani a minimalis mennyisegű (színű) egyenruhát, amire szükség van ...
Példák:
Britain - Ireland
Szükséges egyenruhák száma: 2Britain - Ireland
France - Germany
Szükséges egyenruhák száma: 2Britain - Ireland
France - Germany
France - Swiss
Swiss - Germany
Szükséges egyenruhák száma: 3 -
Gyuri16
senior tag
válasz Carpigabi #2237 üzenetére
iskolai feladatot itt helyetted senki nem fogja megcsinalni, viszont segitunk ha elakadsz, es konkret kerdesed van.
a feladathoz:
szetosztod a grafot osszefuggo komponensekre
mindegyiknek kiszamolod a kromatikus szamat es a legnagyobb lesz a megoldas.kromatikus szam egy osszefuggo grafhoz:
binaris keresessel. egy lepesben kibprobalod eleg e m szin (m legyen mondjuk n/2 az elejen, mivel tudjuk, hogy a kromatikus szam maximum n). ezt bruteforce csinalod.
innen a siker fuggvenyeben mindig kizarod a fel intervallumot, es megtalalod a legkisebb erteket amire meg atmegy a szinezesNem vagyok egoista, csak uborkagyalu!
-
Carpigabi
csendes tag
Nem vártam, hogy megcsináljátok, csak segitseget a kromatikus számokhoz ...
szetosztod a grafot osszefuggo komponensekre ... ezt kitudnád fejteni bővebben?
-
Gyuri16
senior tag
válasz Carpigabi #2239 üzenetére
ez a pelda:
Britain - Ireland
France - Germany
France - Swiss
Swiss - Germanyha grafnak megrajzolod ket osszefuggo komponense lesz:
1 Britain - Ireland2 Swiss - France - Germany
| |
------------------az elso komponens kromatikus szama 2 a masodiknak 3, ebbol a nagyobb a 3 igy az egesz grafnak is ez lesz a kr. szama.
ez az egesz csak egyszerusites. mivel a fo algoritmus bonyolultsaga exponencialis, ezert jobb, ha minel kisebb grafokon futtatod.
ezen kivul lehet optimalizalni az ismert eseteket is. vannak olyan graf osztalyok amiknek ismert a kromatikus szama. pl:
teljes graf - csucsok szama
csillag graf - 2
korgraf - 2 ha paros szamu csucsa van, 3 ha paratlantovabba azok a grafok amiknek 2 a kromatikus szamuk szinten konnyen felismerhetok, mert ezek pontosan a paros grafok (ha tobb mint 1 csucsuk van..)
ha akarsz kicsit gyorsitani az algoritmuson akar ezeket is be lehet vetni, mivel a fenti osztalyokat polinomialis idoben fel lehet ismerni.
[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
-
Sloane
csendes tag
Hello,
Egyszerűen nem jövök rá, mi lehet a hiba... fordítási hiba nincs, csak a futtatásnál nem azt csinálja amit kellene neki...
#include <stdio.h>
main()
{
float osztando, oszto, eredmeny;printf("Osztandó= "); scanf("%f\n", &osztando);
printf("Osztó= "); scanf("%f\n", &oszto);if(oszto = 0)
printf("HIBA\n");
else
eredmeny = osztando/oszto;printf("Eredmény= %f\n", eredmeny);
}Egy kis segítségre lenne szükségem.
thx. -
Sloane
csendes tag
-
Gyuri16
senior tag
gyorsan neztem csak ra, nem vettem eszre a masik hibat. szoval a misztikus scanf..
itt jobban le van irva mint en tudnam:
[link]roviden: ide nem kell a \n, mert az azt okozza, hogy addig olvas be jeleket stdinrol amig whitespace jeleket kap (az ujsor is az). egy ilyen scanf utan ugyan a \n jel ottmarad a bemeneten, de az itt nem baj, mert a kovetkezo beolvasas is float, ami atugorja ezt. ha chart olvasnal be utana, akkor az mar a \n-t kapna meg. ilyenkor nem art a stdinrol beolvasni mindent az ujsorig.
ajanlom megnezni a faq tobbi ide vonatkozo kerdeset is itt: [link] kulonosen a 12.20asat (miert ne hasznaljunk scanf-et felhasznalotol valo bemenetre)
Nem vagyok egoista, csak uborkagyalu!
-
Geri9159
tag
Sziasztok tudnátok segíteni mert nem jövök rá mi lehet a hiba.
Van egy .txt fájl aminek a tartalma így néz ki:Kiss Gyula
12a 11 13 12 13 12 13
Nagy Judit
12b 12 11 12 22 13 21C-be írtam egy programot ami vissza olvassa a fájl tartalmát ami működik csak duplán írja ki a szöveges fájl tartalmát.
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 100
struct egydiak{
char nev[N];
char osztaly[N];
int szovegszerk;
int prezentacio;
int weblap;
int tablazatkezel;
int adatbaziskezel;
int informatika_ism_konyvtar_internet;
}diakok[N];
FILE *fbe;
int i;
int diakokszam;
char osztbeker;
main(){
fbe=fopen("Informatika_kozepszintu_erettsegi.txt", "r");
if(fbe==NULL){
printf("Hiba a file megnyitasaban\n");
getch();
exit(0);
}else{
while(!feof(fbe)){
fgets(diakok[diakokszam].nev,99,fbe);
fgets(diakok[diakokszam].osztaly,4,fbe);
fscanf(fbe,"%d %d %d %d %d %d",&diakok[diakokszam].szovegszerk,&diakok[diakokszam].prezentacio,&diakok[diakokszam].weblap,&diakok[diakokszam].tablazatkezel,&diakok[diakokszam].adatbaziskezel,&diakok[diakokszam].informatika_ism_konyvtar_internet);
printf("Nev: %s\n",diakok[diakokszam].nev);
printf("Osztaly: %s\n",diakok[diakokszam].osztaly);
printf("Szovegszerkesztes: %d\n",diakok[diakokszam].szovegszerk);
printf("Prezentacio es grafika: %d\n",diakok[diakokszam].prezentacio);
printf("Weblapkészítés: %d\n",diakok[diakokszam].weblap);
printf("Tablazatkezeles: %d\n",diakok[diakokszam].tablazatkezel);
printf("Adatbazis-kezeles: %d\n",diakok[diakokszam].adatbaziskezel);
printf("Informatikai alapismeretek, Konyvtarismeret es internethasznalat: %d\n",diakok[diakokszam].informatika_ism_konyvtar_internet);
}
}
fclose(fbe);
getch();
}Nem jövök rá hogy miért írja ki duplán. Ha valaki tud segítsen.
Előre is köszönöm
Geri9159[ Szerkesztve ]
-
Gyuri16
senior tag
válasz Geri9159 #2248 üzenetére
nem csak duplan irja ki, hanem rosszul. a baj az, hogy a fscanf hivas utan ottmarad a bemeneten egy ujsor karakter, amit a ciklus kovetkezo iteraciojaban a fgets megeszik, es csak azzal ter vissza. innen pedig az egesz eltolodik. en azt ajanlom egesz fajlt soronkent olvasd be, akkor nem lesz ilyen baj. a fscanf-s reszt helyettesitheted pl igy:
char tmp[30];
fgets(tmp, 30, fbe);
sscanf(tmp,"%d %d %d %d %d %d",&diakok[diakokszam].szovegszerk,&diakok[diakokszam].prezentacio,&diakok[diakokszam].weblap,&diakok[diakokszam].tablazatkezel,&diakok[diakokszam].adatbaziskezel,&diakok[diakokszam].informatika_ism_konyvtar_internet);tovabba a fgets beolvassa az ujsor karaktert is, ezert a nev valtozodban az is ott lesz (feleslegesen) a vegen. ezert van a kimenetedben is egy sorkihagyas a nev alatt. ugyanez igaz az osztaly valtozodra is, de ott mivel limitalod a beolvasast 4 karakterre nem fer bele az ujsor, igy az jol mukodik, ha pontosan 3 karakter lesz a bemenet.
mod: amit fentebb lineltem faq, ott ez is megvan valaszolva: [link]
sok mas gyakori hibara is kiternek benne, erdemes atnezni[ Szerkesztve ]
Nem vagyok egoista, csak uborkagyalu!
Ú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!
- Apple notebookok
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Ingyen kellene, de tegnapra
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- BestBuy topik
- Samsung Galaxy A54 - türelemjáték
- Honor 200 Pro - mobilportré
- Intel Core Ultra 3, Core Ultra 5, Ultra 7, Ultra 9 "Arrow Lake" LGA 1851
- Mibe tegyem a megtakarításaimat?
- AMD vs. INTEL vs. NVIDIA
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest