Quindi stai scrivendo un programma in C (probabilmente il tuo codice cliente) e vuoi aggiungere qualche interfaccia utente ad esso.
Si noti che lo standard C11 (leggi n1570 ) fornisce molto funzionalità limitate per l'interazione dell'utente (in pratica, argomenti del programma e <stdio.h>
). Probabilmente vuoi utilizzare una libreria esterna, che di solito sarebbe sistema operativo dipendente.
In un primo momento potresti pensare di creare un programma a riga di comando. Quindi il tuo programma C analizza semplicemente gli argomenti del programma ad esso assegnati (cioè argomenti a main
) e agisce di conseguenza. Anche questo è spesso specifico del sistema operativo, ma questa risposta fornisce alcune indicazioni. Cordiali saluti, la documentazione della libreria GNU Glibc ha un capitolo su analisi degli argomenti del programma .
Potresti anche definire sintassi e semantica per il tuo input standard e utilizzare le comuni analisi su di essa. Potresti utilizzare le tecniche di analisi della discesa ricorsiva . Ma potrebbe non essere molto user-friendly (perché il tuo utente non può facilmente modificare il proprio input).
Su molti sistemi, l'utente può interagire con il tuo programma tramite un emulatore di terminale (che è molto più complesso di quello che <stdio.h>
fornisce). Sui sistemi Unix o POSIX, leggi tty demistificato e utilizza librerie come termios(3) o preferibilmente ncurses (o almeno readline ).
Potresti considerare di fornire alcune GUI . In pratica, devi quindi utilizzare alcuni toolkit , come GTK (o Qt in C ++) o libSDL .
Potresti aspettarti che il tuo utente utilizzi il suo browser web. Quindi si desidera aggiungere qualche interfaccia Web. Per questo, dovresti rendere il tuo programma C un server web specializzato, usando una libreria di server HTTP come libonion o libhttp . Naturalmente, è necessario avere familiarità con le tecnologie web, tra cui HTTP, HTML5, CSS, AJAX.
Dato che nella domanda hai menzionato JAVAFX , potresti dividere il tuo software in diversi processi facendo comunicazione inter-processo (allora si dovrebbe avere un programma di interfaccia utente scritto in Java che comunica con i programmi C, in che modo viene realizzato il sistema operativo specifico ).