- Magisk
- Honor 400 Pro - gép a képben
- Samsung Galaxy Fit 3 - keveset, de jól
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S23 Ultra - non plus ultra
- Akciófigyelő: Jelentősen olcsóbban nyit az Ulefone új mindenese
- Xiaomi Watch S1 - szép az idő
- iGO Primo
- Android alkalmazások - szoftver kibeszélő topik
- Android szakmai topik
Új hozzászólás Aktív témák
-
Benmartin
senior tag
válasz
Jester01 #1106 üzenetére
2. Igen, kipróbáltam, bizonyára azért működött, mert nem volt '\n' a sor végén.
3. Oké, elfogadom, én nem szoktam, lehet azért írtam így.
4. Ez oké, de nem akartam bele hibakezelést írni, meg overflowokra figyelni, mert az kétszer ennyi kód, jelzésnek viszont ott volt, hogy mire képes.
5. Szerencsére itt nem voltak olyan méretek.
6-7. Ennek ellent kell mondjak rengeteg forráskódot küldtem már programozó versenyekre, ahol oline judge fordít ANSI C fordítóval, és nem igényelte a headereket, tulajdonképpen még az stdio.h-t sem.
10. Ez kérdéses, hogy mikor jó, mikor nem. Ebben a kódban semmi jelentősége nem volt, hogy globálisak a változók, egy másik példában lehet zavart okoz, egy másikban meg lehet, hogy pont úgy célszerű.
11. Valóban nem tudhatom, ha ilyen egyéni igények vannak, akkor lehet változtatásokat eszközölni.
12. Nincs rendben, de mondtam, hogy ennek kivédését nem állt szándékomban megírni. -
Benmartin
senior tag
válasz
Sk8erPeter #1107 üzenetére
Mert különbözik a compilerünk, kipróbáltam mielőtt elküldtem neked.
-
Benmartin
senior tag
válasz
Jester01 #1104 üzenetére
1.) Tényleg elnéztem.
2.) Meglehet, gyakorlatban azonban működik.
3.) Jó, hát általában nem teszünk szóközt a fájlokba.
4.) Azért van a MAX_FAJLNEV_HOSSZ.
5.) Több megoldás is létezik.
6.-7.) ANSI C fordítónak nem is kell.
8.) Csúnyán néznek de működik, mondjuk akár ki is lehet venni.
9.) Ez jogos.
10.) Ebbe fölösleges belekötni.
11.) long-ot, de ebből nem igen lesz probléma.
12.) Nem is akartam hibakezelést írni. (gondolom magának írja) -
Benmartin
senior tag
válasz
Benmartin #1101 üzenetére
De megírtam, hogy ne csak dumáljak itt:
#include <stdio.h>
#define MAX_FAJLNEV_HOSSZ 100
FILE * filelist, * file;
char name[MAX_FAJLNEV_HOSSZ+1], * block;
unsigned int h;
int main()
{
filelist = fopen("filelist.txt","r");
while(!feof(filelist))
{
fscanf(filelist,"%s",name);
file = fopen(name,"r");
fseek (file,0,SEEK_END);
h = ftell(file);
rewind(file);
block = (char *) malloc(h);
fread(block,1,h,file);
block += 4;
fclose(file);
fopen(strcat(name,"_jav.txt"),"w");
fwrite(block,1,h-4,file);
fclose(file);
}
fclose(filelist);
return 0;
} -
Benmartin
senior tag
válasz
Sk8erPeter #1100 üzenetére
Elég általános kérdéseket teszel fel: "Hogyan születik meg a javított kimeneti fájl?" Hát úgy, hogy létrehozod a fájlt, erre mit lehet mondani?
1.) fgets
2.) Egyébként én úgy csinálnám, hogy magát a fájlneveket is kigyűjteném egy fájlba és abból olvasnám be, majd nyitnám meg a fájlokat.
3.) fopen("javitott.txt","w") -
Benmartin
senior tag
válasz
Elektromann #1066 üzenetére
Dev-Cpp-vel miért nem mentél sokra? Az általad beírt kódok bármelyike fordítható a Dev-Cpp compilerével.
Azért nincs a main előtt int, mert a C-ben van egy olyan szabály, hogy azok a függvények, amelyeknek nem definiálod a típusát alapból int-ek lesznek.
-
Benmartin
senior tag
válasz
Elektromann #1062 üzenetére
Szia!
VS-ben includeolni kell az "stdafx.h" fájlt, de kezdésnek tényleg nem ajánlott az az IDE, mint ahogy a Borland Turbo C-je sem, használj olyan IDE-t, amiben szabványos ANSI C fordító van: Dev-Cpp, ezzel egyidejűleg C++ és C kódot is tudsz fordítani, a fájl kiterjesztésétől függően.
-
Benmartin
senior tag
globális meg lokális deklaráció között a foglalás helyében van nagy különbség (előbbi RAM, utóbbi verem).
igazából nem tudok magyarázatot adni, hogy miért ment globálisan deklarált változónál (bár sejtem: valószínűleg %s-nél megpróbálta beleírni a '\0' karaktert a pointer végére és az egyik allokációnál sikerült a másiknál meg nem, talán ez lehet). mindenesetre a megoldás, amit mutattam nem túl szép, pontosan amiatt, hogy igazából nem szabadna char-ba %s-el olvasni, mert string beolvasásnál +1 karakter mindig kell a végére (emiatt lehet túlcsordulás).a scanf("%c %c")-vel az a probléma, hogy amikor beolvasol bármit az inputról, akkor jön vele mindig egy '\n' karakter az enter miatt és ezt nem tudod hol eltárolni, szóval bennemarad billpufferban, a következő beolvasásnál meg szépen előveszi a puffer tartalmat és beleteszi a változódba, viszont ha kiüríted ezt a puffert, akkor rendesen fog működni a beolvasás.
a szabványos inputra (stdin) kell meghívnod az fflush függvényt, szóval a while előtt, majd minden scanf("%c %c") olvasás után hajtsd végre a következő utasítást: fflush(stdin), ezáltal eltűnnek a pufferból az input végén "varakozó" soremelés karakterek.
remélem segítettem és érthető.
-
Benmartin
senior tag
szia!
a gond a beolvasással van, a két számláló változód végig nulla marad, vagyis egyik feltétel sem teljesül a programod futása során.
a gond a scanf("%c %c")-el van ugyanis egy lehetséges "p k" input beütésénél a programod egy "p k\n" stringet kap meg, amit nem tudsz feldolgozni "%c %c"-vel.
megoldás: scanf("%s %s",&elso,&masodik);
ja és: elso, masodik típusa char legyen, ne int.
üdv.
-
Benmartin
senior tag
válasz
babyanigirl #680 üzenetére
szia!
először is deklarálj egy darab tömböt, mondjuk úgy 100 elemet, de még annyi sem kell, ezután olvasd be soronként az inputot (fgets), mert így kevesebb a függvényhívás, majd iterálj végig a sor minden karakterén, vond le belőlük a nullás karaktert és növeld a darab tömb ezen indexét (darab[sor[i]-'0']++).
majd kiírásnál, ahol nem nulla a tömb értéke hozzáadod az indexhez a nullás karaktert és kiíratod a tömb értékét.
valahogy így.
-
Benmartin
senior tag
válasz
cellpeti #667 üzenetére
valami ilyesmi:
#include <stdio.h>
int getline()
{
int sum = 0, i = 0, c, hatodik;
while((c = getchar()) && isalnum(c))
{
sum += c - '0';
hatodik = c - '0';
i++;
}
sum -= hatodik;
if(i != 6 || sum % 6 != hatodik) return 0;
return 1;
}
int main()
{
if(getline())
{
puts("Helyes!");
} else puts("Hibas");
getchar();
return 0;
} -
Benmartin
senior tag
szia!
wincon.h-hoz szükséges windows.h, char != char*, azért x = '3'. SetConsoleCursorPosition() fvnek nem csak header kell, hanem library is(kernel32). valamint nem két int a paramétere, hanem:
BOOL WINAPI SetConsoleCursorPosition(
__in HANDLE hConsoleOutput,
__in COORD dwCursorPosition
);ennek megfelelően így alakul a kód:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <wincon.h>
main() {
COORD kord;
HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
kord.X = 2;
kord.Y = 3;
char x = '3';
SetConsoleCursorPosition(hConsoleOutput,kord);
printf("%c",x);
getch();
} -
Benmartin
senior tag
válasz
Fire/SOUL/CD #573 üzenetére
Szia!
Értem, hogy mire gondolsz és van is benne igazság, viszont több ponton nem értek egyet a mondandóddal.
- "conio.h mióta C létezik azóta van és használják".
Ez így azért nem igaz, mert az MS-DOS fordítókban használták először, a C pedig 1972-ben jelent meg és akkor még nem volt MS-DOS. Igazából ez most nem is számít igazán, nem kötekedésből mondom.- "Az viszont elég szomorú, hogy 2008-ban olyan feladatokat kapnak a tanulók, amikhez Console Application-okhoz kell nyúlni"
Attól függ mit oktatnak, bár még nem vagyok egyetemista nagyjából ismerem a tantárgyakat, vegyük például az algoritmusok és adatszerkezetek tárgyat, ahol megtanítják, hogyan kell pl. hasítótáblázatot létrehozni. Nem igazán számít, hogy milyen szép meg csicsás a programod, hanem, hogy jól működik-e, gyors, a többi itt sallang marad, nem lényeg, a hangsúly az algoritmuson van, hisz az a lelke az egésznek.
Később megtanítják majd az objektumokat, meg a grafikus interfészt is, ebben biztos vagyok. -
Benmartin
senior tag
válasz
Fire/SOUL/CD #571 üzenetére
Szia!
Véleményem szerint nem jó dolog getch()-t ajánlani, mert a conio.h-ban található, ami nem szabványos C-library, márpedig egyetemen úgy tudom standard ANSI C-t tanítanak.
-
Benmartin
senior tag
-
Benmartin
senior tag
válasz
Bettina87 #391 üzenetére
A KR C-ben a függvények deklarálásakor csak az értékkészlet deklarációja szerepel. Hogy hány változós a függvény és hogy milyen típusúak az egyes változók, az nem.
Szerintem ez így nem igaz, vagy nekem nem egyértelmű.
The C programming Language
By Brian W. Kernighan and Dennis M. Ritchie.
Chapter 4 - Functions and Program Structure:"Each function definition has the form
return-type function-name(argument declarations)
{
declarations and statements
}" -
Benmartin
senior tag
Ú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!
- Asus A15 FA506IU 15.6" FHD IPS Ryzen 7 4800H GTX 1660Ti 16GB 512GB magyar vbill gar
- i5-13600KF, RX 9070, DDR5 32GB, 1 TB M.2, Fractal North TG és sok garancia
- Logitech Combo Touch iPad Pro 11" (1., 2. a 3. gen), szürke - UK billentyűzet ipad tok billentyűzet
- újszerű iPad Pro 11" (3. generációs) (2021) M1 chip Wi-Fi 128GB silver ezüst Apple
- szinte új iPhone 16 Pro Max 256GB desert titanium sivatagi titán független Apple 3 év garancia
- BESZÁMÍTÁS! ASUS ROG Zephyrus GA403UV Gamer notebook - R9 8945HS 16GB RAM 1TB SSD RTX 4060 8GB WIN11
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Sony PlayStation 4 PRO 1TB SSD fekete játékkonzol extra játékokkal garanciával hibátlan
- Azonnal elérhető, raktáron lévő HPE Aruba switch-ek
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest