Salut les copains!

Je suis en train de lire pas mal de tutoriels sur le C++ et j'essaie de créer de petites applications simples pour vérifier que j'ai bien tout compris.
Apparemment j'ai pas tout compris... ^^

J'ai voulu écrire un programme qui demande à l'utilisateur d'écrire quelque chose, qui lise ce que l'utilisateur a écrit, et puis qui dise "vous avez écrit XXX".

Voici mon code en l'état actuel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
#include <iostream> // c'était là quand j'ai créé le projet, j'ai pas touché
#include<stdio.h>
 
using namespace std; // c'était là quand j'ai créé le projet, j'ai pas touché
 
int main() // c'était là quand j'ai créé le projet, j'ai pas touché
{
    char a[100]; // je définis une chaîne de 100 caractères sans l'initialiser
 
    printf("Ecrivez quelque chose s'il-vous-plait...\n"); // consigne à l'utilisateur
    scanf("%[100]s", a); // lecture de la réponse de l'utilisateur
    printf("Vous avec ecrit : %a[100]"); // répéter la réponse de l'utilisateur
}
La compilation ne renvoie pas d'erreur, mais l'avertissement suivant, que je ne sais pas encore interpréter:

Warning: unknown conversion type character 'a' in format

À l'exécution, le programme produit le résultat suivant:
Ecrivez quelque chose s'il-vous-plait...
a (ça c'est ce que j'ai écrit)
Vous avec ecrit : -0x1.9bf0b0p+808[100]
Process returned 0 <0x0> execution time : 2.794 s
Press any key to continue.

Voilà. D'après mes connaissances actuelles, j'aurais tendance à dire que le "a" que j'ai écrit a été mal interprété (disons interprété "dans une autre langue"), ou qu'il n'a pas été renvoyé comme je m'y attendais. Le contenu renvoyé a un peu l'air d'une adresse, ou d'un truc du genre...

Merci de m'expliquer ce qui n'allait pas.