Bonjour,
Je n'ai aucun problème mais j'aimerais avoir un avis sur la façon dont je commente mon code.
#include <stdio.h>
#include <stdlib.h>
int main(void){
int lettre;
// Entrée d'une lettre entre a et y
printf("Entrez une lettre entre a et y : ");
scanf("%c", &lettre);
// Vérification du contenu de la variable
if (lettre >= 4194401 && lettre < 4194426){
// La lettre saisie deviendra celle qui la suit dans l'alphabet
lettre++;
printf("%c\n", lettre);
}
// Indique que le caractère saisi n'est pas acceptable et le programme s'arrête
else{
printf("Une erreur est survenue\n");
return -1;
}
system("pause");
return 0;
}
Concernant tes commentaires, il y a 2 publics visés
toi-même, si tu dois maintenir le code dans 6 mois, 1 an, 10 ans etc... Les commentaires doivent te permettre de te replonger « instantanément » dans le bain
tes collègues actuels ou futurs, qui pourraient eux aussi maintenir ce code. Les commentaires doivent leur permettre de s’imprégner rapidement de ta façon de coder.
L'écriture : lettre++ indique un programme en C++ et non en C.
Et le format %c concerne une variable char et non une variable int.
En programmation C++ on peut donc écrire :
#include <iostream>
int main(void){
char lettre;
// Entrée d'une lettre entre a et y
std::cout << "Entrez une lettre entre a et y : ";
std::cin >> lettre;
std::cout << std::endl << "La lettre lue est : " << lettre << std::endl;
// Vérification du contenu de la variable lettre
if (lettre >= 'a' && lettre <= 'y'){
// La lettre saisie deviendra celle qui la suit dans l'alphabet
lettre++;
std::cout << "La lettre suivante : " << lettre << std::endl;
}
// Indique que le caractère saisi pour la variable lettre n'est pas acceptable
else{
std::cout << "Une erreur est survenue" << std::endl;
return -1;
}
return 0;
}
En gros, tu paraphrases ton code, donc les commentaires que tu as fait ne sont pas efficaces. De plus, un bon code est "self-documented", c'est-à-dire suffisamment clair pour être quasi documenté naturellement. Généralement on commente plus les fonctions, qui sont elles mêmes plus clairs.
Exemple:
#include <stdio.h>
#include <stdlib.h>
/*!
** nextChar returns the next char in the ascii table.
**
** @param c the char
** @return the next char
*/
char nextChar(char c) {
return c + 1;
}
/*!
** isValid checks if the char is valid, ie, is in a valid range.
**
** @param c the char to check
** @return if is in range
*/
int isValid(c char) {
return c >= 'a' && c <= 'y'
}
int main(void){
char lettre;
printf("Entrez une lettre entre a et y : ");
scanf("%c", &lettre);
if (isValid(lettre)){
printf("%c -> %c\n", lettre, nextChar(lettre));
} else{
printf("Une erreur est survenue\n");
return -1;
}
system("pause");
return 0;
}