6.1.4 Récupérer une valeur dans la console

Nous pouvons aussi récupérer une valeur avec la console avec la fonction :

1
int scanf(const char *format, ...);

Le système est le même que pour printf, voici un exemple :

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>

int main(int argc, char** argv){
	int réponse;
	printf("Quelle est la réponse : ");
	scanf("%d", &reponse);
	printf("La réponse est :\n%d\n", reponse);
	
	return 0;
}

On n'oublie pas de recompiler :

gcc -Wall main.cpp -o test

Et on relance le programme :

./test
Quelle est la réponse : 

On entre la valeur que l'on veut :

./test
Quelle est la réponse : 42
La réponse est :
42

Noter la présence de & devant la variable que l'on passe à scanf, on donne donc l'adresse de la variable reponse à la fonction scanf pour qu'elle puisse la modifier sans retourner de type rentré.

Bien sur, il suffit de changer le format pour initialiser une autre variable :

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>

int main(int argc, char** argv){
	double reponse;
	printf("Quelle est la réponse : ");
	scanf("%lf", &reponse);
	printf("La réponse est :\n%lf\n", reponse);
	
	return 0;
}

On recompile :

gcc -Wall main.cpp -o test

Et on obtient :

./test
Quelle est la réponse : 3.14
La réponse est :
3.14

J'en profite pour vous dire que les nombres décimaux s'écrivent avec un point pour séparer la partie entière de la partie décimale et non une virgule.