edit : j'aurais mieux fait de lire en fait, je viens de voir que tu ne comptais pas de faire de la programmation plus tard, donc ma solution est trop complexe pour que tu perdes du temps à tout comprendre. Utilise scanf si tu veux, mais relis quand même bien ton cours car beaucoup d'erreurs quand même.
(Je n'ai pas lu tout ce qui a été posté).
Je pense que tu devrais vraiment te plonger dans le cours ici :
www.siteduzero.com ou mieux relire ton cours de C. Tu fais de trop grosses erreurs.
iostream.h est en C++ (iostream en fait)
un prototype (int fonction(int, int)) se trouve avant le main et pas dans le main
la première chose qu'on trouve dans le main est la déclaration des variables et non des fonctions ou je ne sais quoi.
main renvoie un entier donc tu auras TOUJOURS 2 sortes de main
int main (void) ou int main (int argc, char *argv[])
Tu verras plus tard à quoi sert la deuxième méthode.
N'utilises pas scanf c'est une fonction très très très compliquée à utiliser, je te conseille vraiment d'utiliser fgets qui permet de réaliser des saisies sécurisées
voire ici :
http://www.siteduzero.com/tuto-3-11181-1-realiser-des-saisies-securisees-grace-a-fgets.html
Une fonction ne peux retourner qu'une seule valeur. Soit tu passes un "pointeur "(adresse d'une variable qui sera alors modifiée directement en mémoire), soit une structure (adresse aussi généralement).
Voici ton code corrigé et propre. Si tu as la moindre question (et tu en auras sûrement car c'est pas ce que tu verras a ton cours), tu peux me les poser.
Le code est complexe, oui mais c'est sécurisé donc il ne plantera pas ou bien il a beaucoup moins de chance de planter qu'avec scanf.
Code:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
/* prototypes */
void purger(void);
void clean (char chaine[]);
int somme(int, int);
int main(void)
{
/* declarations des variables */
int n1, n2, sommeNombres;
/*
* buffer temporaire qui te servira a stocker ce que l'utilisateur rentre
* avant de le transformer en entier
*/
char buffer[10] = "\0";
/* debut du traitement des variables */
printf("Veuillez introduire le premier nombre : \n");
/* explication dans le lien que je t'ai file */
fgets(buffer, sizeof buffer, stdin);
clean(buffer);
/*
* n1 contient un nombre "obligatoirement"
* si l'utilisateur avait rentre 95c
* scanf aurait plante, ici n1 vaut 95
* si l'user rentre c pour n1 et b pour n1
* n1 et n2 vaudront 0
*/
n1 = strtol(buffer, NULL, 10);
printf("\nVeuillez introduire le second nombre : \n");
fgets(buffer, sizeof buffer, stdin);
clean(buffer);
n2 = strtol(buffer, NULL, 10);
/*
* ici tu recuperes ce que renvoie somme (un entier)
* c'est equivalent a printf("blabla : %d", somme(n1, n2);
*/
sommeNombres = somme(n1, n2);
printf("\nsomme de vos deux nombres : %d\n", sommeNombres);
/* equivalent a 0 qui veut dire tout s'est bien passe */
return EXIT_SUCCESS;
}
/* fonctions */
int somme(int n1, int n2)
{
return n1 + n2;
}
void purger(void)
{
int c;
while ((c = getchar()) != '\n' && c != EOF);
}
void clean (char *chaine)
{
char *p = strchr(chaine, '\n');
if (p)
{
*p = 0;
}
else
{
purger();
}
}