Salut!
J'avance à petits pas en C++, mais il me semble que je vois de plus en plus loin.
J'ai écrit un programme qui s'utilise via la console standard, c'est-à-dire que je ne gère que tu texte, et que je l'affiche ligne par ligne sans rien réécrire.
Bref: comme l'essentiel de l'interface se fait par texte (entrées par l'utilisateur, affichage de texte par l'ordinateur), j'ai un bon gros paquet de texte à afficher.
Ma première idée a consisté à tout écrire directement dans le programme. Le point faible de cette technique, c'est que mon texte est éparpillé partout, et assez peu lisible en général. Je pense que cette solution ne sera envisageable que pour de petits programmes (corrigez-moi si je me trompe).
Ma deuxième idée, c'était de réunir tout mon texte dans un fichier .txt que le programme lit à chaque fois qu'il a quelque chose à afficher. J'utilise une fonction pour ça, et mon fichier .txt est criblé de balises (pour dire au programme "lis de 056 à 058", et tout).
Mon texte est réuni au même endroit, mais le travail est alors relativement fastidieux (erreurs en écrivant les balises, aussi bien dans le programme que dans le fichier texte...). De plus, j'ai l'impression que l'exécution du programme est un peu lente...
Maintenant, j'ai eu une troisième idée: je pourrais créer une fonction qui contienne un while{switch(step)}, et il me suffirait ensuite d'appeler cette fonction en précisant le numéro de "step" pour afficher le bloc de texte que je veux (et chaque "case" finirait par "step=..." pour sortir de la boucle et remonter dans le programme, cela va de soi).
LA QUESTION EST ICI:
Vaut-il mieux choisir la deuxième ou la troisième solution pour un programme efficace? Quand je dis efficace, je dis rapide (à l'exécution) et léger (taille des fichiers).
Mon avis (de néophyte), c'est que la troisième solution est plus sûre, parce qu'on m'a appris à toujours prévoir une sortie de secours au cas où le fichier texte à lire devait être introuvable (genre: afficher "Erreur système" ou un truc du genre, et fermer l'application). Logiquement, si j'écris mont texte dans le code, ce problème n'aura jamais lieu (à moins d'un bug sérieux)...
Je suppose que la réponse peut être trouvée en décortiquant mon compilateur. Malheureusement, je suis encore incapable de faire ce cheminement...
Partager