Vous devez vous connecter pour exécuter votre code.

fscan_str — Lire un mot (MD 5.8)

MD 5.8 — Écrivez fscan_str qui lit les n premiers caractères consécutifs qui ne sont pas des caractères d'espacement (isspace).

#include <stdio.h> #include <ctype.h> int fscan_str(FILE *stream, char *s, size_t n) { int c; // Sauter les espaces initiaux while ((c = fgetc(stream)) != EOF && isspace(c)) {} if (c == EOF) return EOF; size_t i = 0; s[i++] = (char)c; while (i < n && (c = fgetc(stream)) != EOF && !isspace(c)) { s[i++] = (char)c; } s[i] = '\0'; // Réinjecter le dernier caractère s'il ne fait pas partie du mot if (c != EOF && isspace(c)) ungetc(c, stream); return ferror(stream) ? 0 : 1; } int main() { char buf[256]; int r = fscan_str(stdin, buf, 255); if (r == 1) printf("%s\n", buf); else printf("%d\n", r); return 0; }