Addition en C#

Résolu/Fermé
hektor 1 Messages postés 112 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 2 février 2011 - 30 juin 2010 à 18:00
reaverlost Messages postés 150 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 14 mai 2018 - 1 juil. 2010 à 15:40
Bonjour a tous

Je suis debutant en programmation et j'essaie actuellement un programme tres simple,
effectuer une addition.
voici le code :

int A, B, C;
Console.WriteLine("nombre 1");
A = Console.ReadLine();
Console.WriteLine("nombre2");
B = Console.ReadLine();
C = A + B;
Console.WriteLine("le resultat est :" + C);
Console.ReadLine;



Mais a chaque fois la liste d'erreur (visual C# 2008) affiche:

impossible de convertir implicitement le type "string" en "int"

Quel est le probleme??

merci de votre aide

13 réponses

Yorundr Messages postés 289 Date d'inscription mardi 31 octobre 2006 Statut Membre Dernière intervention 11 juin 2012 44
1 juil. 2010 à 09:22
Salut,

c'est très simple, en fait la méthode Console.WriteLine, ne peut afficher qu'une string (Chaine de caractère), ou une concaténation de string.

Or, ton C est un entier, il faut donc au préalable le convertir en string. Pour cela tu peux utiliser System.Convert.ToString


Console.WriteLine("le resultat est :" + System.Convert.ToString(C));
3
Neyte Messages postés 115 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 8 mai 2012 16
30 juin 2010 à 18:03
je ne pense pas que tu puisse faire A = Console.ReadLine();

essaye A = int.Parse(Console.ReadLine());

également

essaye de remplacer :

Console.WriteLine("le resultat est :" + C);

par

Console.WriteLine("le resultat est :" + C.ToString());
0
hektor 1 Messages postés 112 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 2 février 2011
30 juin 2010 à 19:08
J'ai suivi ton conseil mais maintenant la liste d'erreur affiche:

Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique

le message s'affiche pour les trois variables
0
Neyte Messages postés 115 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 8 mai 2012 16
1 juil. 2010 à 09:13
Quel est le nom de ta fonction?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Neyte Messages postés 115 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 8 mai 2012 16
1 juil. 2010 à 09:17
essaye avec sa :

static void Main(string[] args)
{
int A, B, C;
Console.WriteLine("nombre 1");
A = int.Parse(Console.ReadLine());
Console.WriteLine("nombre2");
B = int.Parse(Console.ReadLine());
C = A + B;
Console.WriteLine("le resultat est :" + C.ToString());
Console.ReadLine();
}
0
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 39
1 juil. 2010 à 09:24
La réponse de Neyte est la bonne. Problème résolu? :)
0
Neyte Messages postés 115 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 8 mai 2012 16
1 juil. 2010 à 09:24
ou alors C.ToString() tout simplement
0
LDMBatman Messages postés 95 Date d'inscription mardi 29 août 2006 Statut Membre Dernière intervention 10 avril 2014 39
1 juil. 2010 à 09:26
La méthode Console.ReadLine() stock le résultat via un return dans le type string.

Donc
int A <= string 
ne peut que générer une erreur si aucun Parse n'est fait
0
hektor 1 Messages postés 112 Date d'inscription jeudi 29 avril 2010 Statut Membre Dernière intervention 2 février 2011
1 juil. 2010 à 14:07
Merci pour vos reponse.
Effectivement le code source de Neyte fonctionne correctement.
Il fallait donc convertir mes variables "int" en "string".
0
holow1 Messages postés 680 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 7 décembre 2012 71
1 juil. 2010 à 14:44
converti tout les variables A,B,C non je crois c'est pas bon car c'est ta converti A ,et B quand tu veux faire l'addition il va faire la concaténation il faut juste converti la varaibles C en string

C.toString();
0
doncjavascript
1 juil. 2010 à 15:03
The "Read" and "ReadLine" methods are the main ways of acquiring data from the standard input stream. "ReadLine" reads a whole line of characters from the buffer up to the point where the first end line character ("\n") is found. It outputs its data as "string" (experienced C++

//---J'ai trouvé ça, traduit approximativement:
"Read" et "Readline" methods sont les façon principale d'acquérir des données d'un point d'entrée. Readline lit une ligne entière de caractères du buffer au point ou la ligne prend fin(lorsque q'un \n est trouvé). Il retourne une donnée de type "string"



Bienvenu dans le monde joyeux(mais pas tant que ça) du typage de données. En effet chaque variable correspond à un type : entier (int) chaine de caractéres(string) etc...On ne peut additioner que des int et readline fournit une chaine de caractéres.


Je peut pas dire mieux en C#, essaie de trouver un tuto sur les variables qui montre une addition dans ce langage.
0
reaverlost Messages postés 150 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 14 mai 2018 21
1 juil. 2010 à 15:38
Salut,

Essayes :

int A, B, C;
Console.WriteLine("nombre 1");
A = int.Parse(Console.ReadLine());
Console.WriteLine("nombre2");
B = int.Parse(Console.ReadLine());
C = A + B;
Console.WriteLine("le resultat est :" + C);
Console.ReadLine;
0
reaverlost Messages postés 150 Date d'inscription jeudi 27 mai 2010 Statut Membre Dernière intervention 14 mai 2018 21
1 juil. 2010 à 15:40
Mince j'avais pas vu "Afficher les commentaires"...

Sorry :D
0