Hirdetés
(használd a CYBSEC25PH kuponkódot további 20 ezer ft kedvezményért!)
Új hozzászólás Aktív témák
-
-
alapz@j
tag
A NotePad++ és a Cygwin alapján feltételezem, hogy Windows OS alatt programozol - ebben az esetben a legújabb Microsoft Visual C Express-t vagy a PellesC-t ajánlanám, mindkettő ingyenes és nagyon jó fejlesztői közeg, ez utóbbi teljesen C11 konform és a resource editor is teljes benne (pl. van dialog builder, ami az msvce-ből pl. hiányzik).
-
bucsupeti
senior tag
Előszöris az igazzy C programozó, valamiféle Unix féle rendszert használ, természetesen c-shellel
De komolyra fordítva a szót. Szerintem először célszerű átlátni hogy a programozás egyes fázisaiban mi is történik, milyen programokat és miért kell futtatni. (szerkesztés, fordítás, futtatás, hibakeresés) Ezeket a részleteket az integrált fejlesztői környeztek jól eltakarják, ezzel "egyszerűsítve" a programozást.
Szóval az IDE-k használata (pl. Dev-C, Code-Blocks, Visual Studio, Netbeans, Eclipse) szerintem csak akkor jó ötlet ha tudod mi történik és hogyan. Ha ez a lépés kimarad akkor nagyon sok minden bonyolultnak, érthetetlennek tűnhet.Később valamelyik professzionális IDE megismerése mindenképp javasolt. Én az Eclipse mellett döntöttem, de van más lehetőség is.
-
Jester01
veterán
A beolvasás egyszerű feladatnak tűnik, mégis meglepően bonyolult jól csinálni.
Az fflush(stdin) nem szabványos, vagy működik vagy nem. Az ajánlott módszer teljes sorok olvasása fgets használatával, majd a beolvasott sor számmá alakítása strtol segítségével. A helyes megoldás a sor olvasásnál kezeli a túl hosszú sorokat, és az átalakítás után ellenőrzi, hogy maradt-e még feldogozatlan karakter.
Ennél egyszerűbb megoldás, ha az fflush(stdin) helyett egy fgetc(stdin) ciklussal kiolvasol mindent a sor (vagy a bemenet) végéig.
Az is rossz a kódban, hogy a scanf visszatérési értékét nem ellenőrzöd. Ha ugyanis nem számot írnak be, akkor nem tud mit konvertálni és az i értéke változatlan marad. Azt pedig nem is inicializáltad, tehát bármi lehet. Ha véletlenül 1 és 5 közé esik akkor a programod kilép a ciklusból.
-
Jester01
veterán
1. nem lehet tudni mit ír ki, mert nem definiált működés
2. itt nem kell az L, akkor kellene esetleg ha műveleteket végzel vele ami túlcsordulhat
3. nem tudjuk ennyiből megállapítani
5. a C ilyen buta
+1. ha nem az eredetit akarod módosítani, akkor foglalj dinamikusan memóriát (malloc)buherton:
-
Hani
aktív tag
Az előző végén persze nem figyeltem és átváltoztatta nekem a [ i ] -jeimet (i)-re meg jó kis dőlt betűre, szóval az utolsó rész még egyszer:
static char copystr[255];
strcpy(copystr, string);while(string[ i ] !='\0')
{
//Csak a kisbetuket valtoztatjuk, a tobbi marad
if ( string[ i ] >= 'a' && string[ i ] <= 'z' )
copystr[ i ] = string[ i ]-32;
i++;
}
return copystr;
}illetve
char* upper_string3(char str[])
{
int i=0;while(str[ i ] !='\0')
{
if ( str[ i ] >= 'a' && str[ i ] <= 'z' )
str[ i ] = str[ i ]-32;
i++;
}
return str;
} -
buherton
őstag
1.
Ezt ne is próbáld megfejteni, mert unspecified az inkrement és dekrement kiértékelési sorrendje ilyen esetekben.2.
Nem szükséges az L, mert a fordító castolni fogja, de ajánlott, mert így szép.3.
Ilyenekkel ki lehet kergetni a világból. Az elmúlt 4 évben egészen biztosan nem írtam le még gondolatban sem a scanf-t
.
4.
Nincs különbség. Az utóbbit ajánlatos használni, mert nem típus, hanem a változó lehet pointer.5.
Lehet, mert az enum egy számot reprezentál, viszont nem ajánlatos íly módon használni, mert nagyon megtudja keverni az embert.+1.
Erre van egy uppercase vagy milyen standard függvény.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Autós topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Battlefield 6
- Luck Dragon: Asszociációs játék. :)
- Milyen légkondit a lakásba?
- Projektor topic
- OLED monitor topic
- Mos, főz, takarít ez a furcsa figura
- Milyen TV-t vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- További aktív témák...
- Garmin USB ANT Stick jeladó eladó
- Xiaomi Mi Note 10 Lite 128GB, Kártyafüggetlen, 1 Év Garanciával
- DDR5 16GB 8GB 32GB 4800MHz 5600MHz RAM Több db
- Eredeti Microsoft Windows 10 / 11 Pro OEM licenc Akciós áron! 64/32 bit Azonnali kézbesítéssel
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest