IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème c2065 identificateur non déclaré sur Microsoft Visual Studio


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut Problème c2065 identificateur non déclaré sur Microsoft Visual Studio
    Bonjour/Bonsoir à tous !

    Je suis débutant en C, à vrai dire je suis en train d'apprendre, et je bloque à un endroit. Si vous pouvez m'aider ça serait sympa (et dans des termes pas trop compliqué histoire que je comprenne !!)
    Vous trouverez mon code en pièce jointe (imprimé écran).

    Merci d'avance pour votre aide !
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Tu utilises les mots "oui" et "Oui" mais le compilateur ne les connaît pas. Soit tu ne les a pas déclaré, soit tu penses pouvoir les utilisés tel quel. Malheureusement pour toi ces mots n'existent pas dans le langage C.

    Petite apparté. N'insères pas des images pour nous montrer ton code. C'est inutilisable. Copie/colles plutôt la partie du code qui fait défaut et encadre-la avec les balises "code" prévues à cet effet (le # dans les icônes).

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonsoir,

    Merci pour votre réponse aussi rapide et votre conseil pour le futur.
    Je n'ai pas encore appris à déclarer une variable donc je ne sais pas comment faire... => je vais mettre en stand-by cet exercice..

    Merci en tout cas et bonne continuation !

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    En regardant d'un peu plus prés tu essayes de comparer une chaine de caractère oui ou Oui à la variable réponse.

    Tout d'abord pour écrire ca de manière plus correcte il manque des "" pour encadrer les mots oui et Oui.

    Ensuite on ne peut tout simplement pas faire comme ca. C'est tentant mais quand on sait comment est agencée une chaine de caractères en mémoire c'est tou simplement impossible . Il te faut passer par une fonction faite pour ca : strcmp(); que tu trouveras dans la bibliothèque <string.h>.

    [edit]
    Histoire d'enfoncé le clou pour l'instant reponse attend un nombre ! Donc lui demander s'il vaut "oui" ou "Oui"...

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Re-bonsoir,

    Merci pour ta disponibilité.
    Je viens de regarder ce dont tu m'a parlé et je viens de voir que dans le livre que j'utilise (Apprenez à programmer en C) c'est situé à la page 182 hors je suis à la page 81. J'en déduis que j'ai voulu aller un peu vite !
    J'ai donc intégrer la bibliothèque <string.h> et ajouté les guillemets ainsi "oui" et "Oui" afin de faire déjà plus propre.
    Je n'ai désormais plus aucun message d'erreur ce qui est un progrès et donc pour cela je t'en remercie.
    Il faut maintenant que j'apprenne à utiliser la fonction strcmp car là quand je lance le débogage, peu importe ce que je rentre, que ce soit oui, Oui, non, ou autre ça me renvoie directement à "Il semblerait que vous ne voulez pas etre un nouveau client chez nous, dans ce cas nous ne pouvons vous aider. Passer une bonne journee." donc en gros le problème est lié à la fonction si.
    Mais c'est normal car je n'ai pas utilisé la fonction strcmp comme tu m'as dis (et j'ai pas touché à reponse=0 pour le "oui" ou "non").
    Bref je peux y arriver (grâce à toi bien sur )

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour gerald3d,

    Je voulais vous informer que j'avais réussis à contourner mon problème et ceci sans utiliser la fonction strcmp que je ne connais pas !

    Voici le code corrigé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    int main(int argc, char *argv[])
    {
    	int age = 0, argent = 0, reponse = 0;
    	printf("Bonjour et bienvenue chez Banque Des Riches. Desirez-vous ouvrir un compte ?\n 1. Oui\n 2. Non\n");
    	scanf_s("%d", &reponse);
    	if (reponse == 1)
    	{
    		printf("C'est fabuleux ! Quel age avez-vous ?\n");
    		scanf_s("%d", &age);
    		if (age >= 30)
    		{
    			printf("Vous avez les conditions requises, nous nous felicitons de vous avoir comme nouveau client !\n");
    		}
    		else if (age < 30)
    		{
    			printf("De combien d'argent disposez-vous ?\n");
    			scanf_s("%d", &argent);
    			if (argent >= 100000)
    			{
    				printf("Vous avez les conditions requises, nous nous felicitons de vous avoir comme nouveau client !\n");
    			}
    			else
    			{
    				printf("Nous sommes desole de vous annoncez qu'apres une etude approfondie de votre dossier nous ne pouvons vous accepter dans notre banque. Merci d'etre venu chez nous en tout cas. Passez une bonne journee !\n");
    			}
    		}
    	}
    	else if (reponse == 2)
    	{
    		printf("Il semblerait que vous ne voulez pas etre un nouveau client chez nous, dans ce cas nous ne pouvons vous aider. Passer une bonne journee.");
    	}
    	else
    	{
    		printf("Il semblerait que nous n'ayez rentre ni 1 pour Oui ni 2 pour Non. Merci de fermer et de re-ouvrir le programme et de l'utiliser correctement.");
    	}
    		getch();
    }
    En gros, j'avais fais quelques petites erreurs, j'avais oublié d'écrire le "&" dans les scanf_s (car scanf me dit que la fonction n'est pas "safe") avant la variable, mais concernant mon problème, je l'ai contourné tout simplement, en demandant à l'utilisateur de taper 1 pour Oui et 2 pour Non.
    Donc tout fonctionne ! Enfin presque il arrête pas de me renvoyer dans la fenêtre "input.c" à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *(long UNALIGNED *)pointer = (unsigned long)number;
    Donc pour le moment je clique à chaque fois sur "Continuer le débogage" mais bon c'est pas top top..
    Auriez-vous une idée à ce niveau là ?

    Bien cordialement.

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Le problème vient peut être de la variable argent. Je suis pas sûr que le compilateur accepte une valeur supérieure à 32767 (int est signé). Comme tu l'as compares à 100 000 ca peut lui poser quelques soucis. Tout ceci est lié à ton architecture en plus...

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour gerald3d,

    Le problème ne vient pas de là, enfin ne vient pas de la variable argent, car pour tout les programmes que je créé, j'ai toujours ceci qui apparait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     if (longone)
                                        *(long UNALIGNED *)pointer = (unsigned long)number;
    Cette ligne de cote se trouve dans input.c à la ligne 1112 / 1113.
    Je ne pense pas que ce soit un problème d'architecture vu que je suis les exemples du livre à la lettre (ou presque).

    Par exemple cela me le fait aussi sur le programme suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    int main(int argc, char *argv[])
    {
    	int nombreMystere = 0, nombreEntre = 0;
    	const int MAX = 100, MIN = 1;
     
    	//Génération du nombre aléatoire
     
    	srand(time(NULL));
    	nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
     
    	// La boucle du programme. Elle se repete tant que l'utilisateur n'a pas trouve le nombre mystere.
     
    	do
    	{
    		// On demande le nombre
     
    		printf("Quel est le nombre mystere ? ");
    		scanf_s("%d", &nombreEntre);
     
    		// On compare le nombre entre avec le nombre mystere.
     
    		if (nombreMystere > nombreEntre)
    			printf("C'est plus !\n\n");
    		else if (nombreMystere < nombreEntre)
    			printf("C'est moins !\n\n");
    		else
    			printf("Bravo tu as trouve le nombre mystere !!\n");
    	} while (nombreEntre != nombreMystere);
    	getch();
    }
    Code que j'ai recopié exactement depuis le livre, il est juste, il fonctionne et je le comprends. Mais voilà, quand je le lance, la fenêtre apparait, je rentre mon numéro ou quoi que ce soit, je fais entré et hop ça me ramène sur la ligne de code que je vous ai montré au tout début. Bon j'ai juste à cliquer sur continuer à chaque fois et ça fonctionne mais ça casse toute la magie :/

    Peut être que je devrai clôturer cette discussion et en ouvrir une autre vu que mon problème n'est plus le même.

    Si vous avez une idée j'e vous en serai fort reconnaissant, autrement... bah je devrai faire avec

    Cordialement,

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Que dit le debugger exactement quand il "saute à cette ligne"? Quelles sont les dernière lignes de la fenêtre Output -> Debug?

    Et es-tu sûr qu'il n'y a pas tout simplement un breakpoint qui resterait sur cette ligne?

    PS: Que se passe-t-il si tu lances ton programme avec "Start without debugging"?

    Edit: Wow, la fonction qui gère ça dans la CRT est un monstre de près de 1000 lignes de code spaghetti...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Bonjour Médinoc,

    PS: Que se passe-t-il si tu lances ton programme avec "Start without debugging"?
    Je ne savais pas qu'il y avait un bouton "Executer sans débogage". Enfin... je n'y avais pas fais attention pour être honnête.
    Quand je fais "Executer sans débogage" tout fonctionne parfaitement ! Je viens d'essayer avec plusieurs de mes programmes et il n'y a plus ce problème !

    Que dit le debugger exactement quand il "saute à cette ligne"? Quelles sont les dernière lignes de la fenêtre Output -> Debug?
    Voici un imprimé écran, je pense que ce sera plus simple. (Dans l'exemple j'ai rentré le nombre 50, car je joue au programme PLUS OU MOINS.)

    Nom : Problème visual studio.png
Affichages : 1045
Taille : 69,0 Ko

    Voici un deuxième imprimé écran ou là, après avoir rentré 50 et appuyé sur Entrée, l'ordinateur m'a dit "C'est plus !" Donc cette fois-ci j'ai tapé 75 et j'ai fais entrée. En fait je vous montre ce deuxième imprimé écran car je ne montre pas les même fenêtres en bas.

    Nom : Problème visual studio 2.png
Affichages : 965
Taille : 69,4 Ko

    Et es-tu sûr qu'il n'y a pas tout simplement un breakpoint qui resterait sur cette ligne?
    Wow, la fonction qui gère ça dans la CRT est un monstre de près de 1000 lignes de code spaghetti...
    Je ne suis pas bien sure d'avoir compris vos deux questions.

    Merci pour votre aide et votre temps.

    Bien cordialement,

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Cette icône à gauche des numéros de lignes, c'est un breakpoint. Ça dit au debugger de s'y arrêter. Fait un clic-droit dessus, il doit y avoir une option pour supprimer le breakpoint.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Re-bonjour Médinoc,

    Cette icône à gauche des numéros de lignes, c'est un breakpoint. Ça dit au debugger de s'y arrêter. Fait un clic-droit dessus, il doit y avoir une option pour supprimer le breakpoint.
    Je viens de le désactiver comme vous m'avez dit de le faire et.... ça fonctionne !!

    Vraiment merci beaucoup, je vais pouvoir avoir plus de plaisir lors des test de mes programmes.

    Merci encore pour votre temps et votre aide à tout les deux.

    Bien cordialement

    Edit : Je marque le sujet en résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur sur Microsoft Visual Studio C++
    Par katcha95 dans le forum Windows
    Réponses: 0
    Dernier message: 11/04/2010, 01h54
  2. Réponses: 2
    Dernier message: 18/02/2009, 11h11
  3. Réponses: 4
    Dernier message: 18/06/2008, 20h47
  4. Réponses: 4
    Dernier message: 11/01/2008, 21h37
  5. Problème d'identificateur non déclaré
    Par renorx dans le forum Débuter
    Réponses: 3
    Dernier message: 14/11/2005, 20h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo