Je voudrais savoir comment lire une chaîne à partir de l'entrée standard de longueur 'n'. J'ai essayé à l'aide de la fonction fgets() mais avait un problème si je soumets une chaîne de longueur> nComment lire une chaîne de longueur 'n' à partir de l'entrée standard
#include <stdio.h>
int STRING_SIZE=4;
int getString(char *);
int getString(char *str)
{
printf("\nEnter a string of length < %d: ", STRING_SIZE);
fgets(str, STRING_SIZE, stdin);
fflush(stdin);
printf("\n\n%s\n\n",str);
return 0;
}
int main(void)
{
char str1[1024];
char str2[1024];
getString(str1);
getString(str2);
fprintf(stdout, "%s\n", str1);
fprintf(stdout, "%s\n", str2);
return 0;
}
si j'entre une chaîne de taille plus de 4 pour str1 alors les caractères restants OBTIENNENT attribués automatiquement à str2 .
Y a-t-il un moyen de donner des chaînes aux deux str1, str2 même après avoir donné string> STRING_SIZE?
J'utilise un compilateur GCC 4.3 et si je compile le code source ci-dessus
$ ./a.out
Enter a string of length < 4: 12345678
123
Enter a string of length < 4:
456
123
456
ne sait pas quel est votre objectif – qrdl
utilisant fflush() sur les flux d'entrée n'est pas défini dans C –
Merci « Neil Butterworth » Je ne pourrai jamais essayer d'utiliser de cette façon à nouveau. – codingfreak