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;
}