C, C# vagy Python?
Sziasztok, Egy ideje C# ban "programozok" tetszik is meg minden de inkább majd Operációs rendszereket és játékokat szeretnék készíteni. A kérdésem az lenne hogy bár tudom millió + 1 ilyen kérdés van de pont ilyen nincs, hogy melyiket ajánlanátok a fentebb említett célokra?
A C#-t azért nem szeretném folytatni mivel az csak windows-ra van és én inkább a Linux -ot szeretem használni!
Válaszokat köszönöm! 14/F
#include <locale.h>
int main() {
.. setlocale(LC_ALL, "hun");
.. return 0;
}
Köszönöm szépen :D
Illetve azt sem találtam sehol sem hogy a szöveg színét meg lehet-e változtatni? Ha igen hogy?
"Hagyd már abba a baromságaidat. A C soha nem volt a c++ részhalmaza"
Mit nem tudsz megcsinálni C++-ban ugyanazzal a szintaxissal, amit C-ben megtudsz? Melyik C-s függvényt nem tudod meghívni?
"mert a kontrollerek, processzorok zöméhez elég a C, annyira, hogy sok esetben nincs is c++ fordító."
Fordítva ülsz a lovon. C-ben programozni lassú és egyáltalán nem biztonságos C++-hoz képest. Ha bizonyos területen még nem tértek át, az csak azért van mert spórolnak a fejlesztésen, amivel hosszú távon csak önmagukat szívatják.
"Mit nem tudsz megcsinálni C++-ban ugyanazzal a szintaxissal, amit C-ben megtudsz?"
Szépen rákeresel és elolvasod. Lesz mit.
Az meg szintén nem igényel kommentet, hogy a C-ben való fejlesztés lassú és biztonságtalan lenne. A hardverközeli programozás nyelve az assembly mellett a C, évek évtizedek alatt kialakított, tökéletesre fejlesztett librarykkal. Ezt nyilván nem fogják a szemétbe dobni, csak azért mert van egy "olyan C" ami az OOP-t hozzáadja a lehetőségekhez, éppen azt, amire ezen a területen amúgy 99 %-ban semmi szükség.
A sok-sok fejlesztő a világban hadd tudja már jobban nálad, hogy mit csinál, mivel és miért.
Mielőtt tovább szeretnéd folytatni ezt a szövegszínezős tervedet, szerintem jobb, ha megbeszéljük, mi is az a konzol.
Egy terminál (vagy konzol) gyakorlatilag 3 különálló fájlnak vehető, mégpedig a:
- standard bemenetből (standard input, stdin),
- standard kimenetből (standard output, stdout),
- standard hiba (standard error, stderr)
fájlokból áll. Ezt a három fájlt látod egyszerre azon a szép nagy fekete képernyőn.
A standard kimeneten a felhasználó számára hasznos dolgokat írhatsz ki. A printf, puts, putchar stb. függvények és eljárások mind-mind ezt a fájlt írják.
Ha a felhasználónak szeretnél lehetőséget adni arra, hogy valamit beírjon, legyen az egy szám vagy egy szöveg, akkor az mindig a standard bemenetre fog kerülni. Ezt a fájlt olvasod, amikor a gets-t, scanf-et, getchar-t használod. (De a gets-t én a helyedben nem használnám, mivel rendkívül nagy biztonsági kockázatot jelent. Ha érdekel miért, akkor szívesen mutatok egy példát.)
Valamint van a standard hiba. Ez hasonlít a standard kimenetre, tehát erre a programodban írhatsz ki dolgokat, de ezt - mily meglepő - a hibaüzenetek számára tartják fenn. Ez utóbbira írás nem annyira egyszerű, mivel itt nem úszod meg a fájlkezelő függvényeket és eljárásokat, de ezt úgyis megmutatom neked.
Ezekhez a fájlokhoz szerencsére közvetlenül is hozzáférhetsz. Miután behúztad az stdio.h-t, akkor rögtön megjelenik három azonosító: stdin, stdout, stderr. Ha megnézed, milyen típusúak, rájöhetsz, hogy FILE*, tehát ezeket már azonnal használhatod is a fájlkezelő rutinokkal.
#include <stdio.h>
#include <locale.h>
int main() {
.. setlocale(LC_ALL, "hun");
.. int Num;
.. printf("Adj meg egy számot: ");
.. if (scanf("%d", &Num) != 1) { //a scanf eredménye azt jelenti, hogy hány adatot sikerült beolvasni
.. .. fputs("Nem számot adtál meg!", stderr);
.. .. return 1; //Jelezzük, hogy a program sikertelenül ért véget, és a hibakód 1 lesz.
.. }
.. printf("A(z) %d számot adtad meg.\n", Num);
.. return 0; //Ha a hibakód 0, az azt jelenti, hogy a programod sikeresen ért véget.
}
Erről a 3 fájlról azt kell tudni, hogy ezek átirányíthatóak. Ha azt szeretnéd, hogy a program kimenete képernyőre kiírás helyett fájlba tárolódjon, megteheted így:
program.exe > kimenet.txt
Hasonlóan a bemenettel:
program.exe < bemenet.txt
A hiba átirányítása már egy kicsit érdekesebb:
program.exe 2> hiba.txt (itt figyelni kell arra, hogy a 2 és a > közt nem lehet szóköz)
Olyat is csinálhatsz, hogy a hibát a standard kimenetre irányítod rá:
program.exe 2>&1 (itt az 1 jelenti az stdout-ot, míg a 2 az stderr-t)
Ha a konzolon színezgetni akarsz, addig semmi gond nincs, amíg azt ki nem találod, hogy írsz egy grafikus felületet, ami lényegében annyit csinál, hogy a konzolos programjaidat futtatja. Mert amikor fel kellene dolgozni a konzolos programod kimenetét, nagyon csúnyán keresztül fogja húzni a számításaidat a sok vezérlőkarakter.
"return 0; //Ha a hibakód 0, az azt jelenti, hogy a programod sikeresen ért véget."
Hibakód. LOL
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!