voici un code trés élémentaire :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#include<stdio.h>
#include<stdlib.h>
 
int main (){
 
char nom[3];
printf("donnez une chaine \n");
scanf("%s",nom);
printf("%s",nom);
 
 
}
la question est :

En donnant une chaine plus grande que 3, mettons "chaine" , le scanf et le printf la lise sans afficher erreur ni la couper à la troisième position !
pour le scanf je concois le fait qu'il peut lire une saisis plus grande que 3 mais en ecrasant les espaces non reservés qui viennent apres l'espace réservé à notre chaine de 3 , c'est dailleur un des gros desavantage du scanf ..
Mais comment le printf a su lui continuer l'affichage jusqu'a la fin de la chaine ??