dire que je dois lire en deux nom comme, [name name]\n
.... (peut-être plus [name name]\n
. En supposant que le nom peut avoir une longueur de 19, mon code jusqu'à présent est, comment pourrais-je réellement empêcher une entrée comme [name name name]\n
ou plus [name name name...]\n
dans mon cas? J'ai entendu parler fgets() et fscanf mais que quelqu'un me montrer gentiment un exemple comment les utiliser? Merci d'avance.scanf à fgets C
char name1[20];
char name2[20];
for(int i=0; i < numberOfRow ; i++){
scanf(" %s %s", name1, name2);
}
Ok donc j'ai trouvé un moyen pour s'assurer qu'il n'y a que deux éléments, mais je ne suis pas sûr de savoir comment les remettre en variable ...
char str[50];
int i;
int count = 0;
fgets(str, 50, stdin);
i = strlen(str)-1;
for(int x=0; x < i ;x++){
if(isspace(str[x]))
count++;
}
if(counter > 1){
printf("Error: More than 2 elements.\n");
}else if{
//How do i place those two element back into the variable ?
char name1[20];
char name2[20];
}
Il y a une possibilité pour un comportement non défini si les chaînes d'entrée sont plus de 20 caractères. Utilisez '% 20s% 20s' à la place. –
Vous devez tenir compte du terminateur NULL ** NOT ** compté par le spécificateur 'width' dans la chaîne de format' scanf'. Un tableau avec 20 caractères doit avoir une chaîne de format '"% 19s "' (ou '"% 19 ["'). – pmg