Ultima modifica:
Il goto è un dettaglio, e in realtà in alcuni casi è anche giusto usarlo (non nel caso in cui l'hai usato te).Che ci sia IL GOTO
Ma quel codice è orribile sotto ogni punto di vista:
https://github.com/Virgula0/keylogger_creator/blob/master/keylogger.cpp#L92-L123
https://github.com/Virgula0/keylogger_creator/blob/master/lib/__choose_dir__.h#L39-L72
https://github.com/Virgula0/keylogger_creator/blob/master/lib/__keylogger_3__.h#L20-L100
Tutti questi elseif sono totalmente assurdi. In generale, se ti ripeti, se scrivi costrutti infiniti e lunghi come questo, vuol dire che stai sbagliando qualcosa. Ad esempio, nell'ultimo link, non serviva nemmeno un if: bastava concatenare un paio di stringhe e poco più.
Oppure il primo link e il secondo link: se da dir_choose facevi ritornare la stringa con il nome della cartella invece che un numero e la passavi quindi direttamente all'altra funzione, risparmiavi tutti gli if in entrambi i file.
https://github.com/Virgula0/keylogger_creator/blob/master/lib/__system__.h#L10-L104
Come anche tutte queste chiamate a system. Lo stesso system l'hai usato in diversi altri punti. Sembra quasi che quel codice sia stato scritto da uno che proviene dal batch di Windows e che non ha mai studiato C e C++ su manuali e perciò non ha idea di cosa sta facendo. system non dovrebbe essere MAI utilizzato.
Il codice è illeggibile, i nomi delle funzioni non sono significativi (uno che legge il codice, e trova key_logger_3("Programmi") come può capirlo?), e lo hai suddiviso senza minima logica su più file (tra l'altro hai utilizzato degli header file per contenere istruzioni e un file per ogni funzione). Poi, il codice funziona sul tuo computer, su un altro computer potrebbe non funzionare (a parte il fatto che funziona solo su Windows): ad esempio perché se sul tuo computer la directory dei programmi è "C:\Programmi" su un altro computer può essere diverso, ad esempio "C:\Program Files", e già il codice non funziona più. C'è anche tanto altro: in generale, tutto il codice è pessimo.
Exsta ha ragione: quel codice è un esempio di come NON si deve programmare. E non dovresti prendertela: Exsta ha fatto bene ad avvertire prima che qualcuno prendesse un codice del genere come esempio, e anche a spiegarti che così non va bene.
Mi smentirai se mi sbaglio, ma credo che non hai mai studiato questi linguaggi (il C e il C++) su un manuale. Magari dovresti prima scrivere codici e rilasciarli. Perciò, ti linko questa, dove trovi anche una lista di manuali: https://www.inforge.net/xi/threads/frequently-asked-questions-da-dove-si-parte.441093/
P.S.: Noto anche la presenza di un file ".dev". Deduco quindi che stai utilizzando Dev-C++: è un pessimo IDE - dovresti evitarlo.