Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Passage par adresse ds une fonction [ Archives / Au secours ] (benus)

dimanche 15 mai 2005 à 18:19:23 | Passage par adresse ds une fonction

benus

Bonjour j'ai un ti soucis avec une fonction c++, il doit y avoir un probleme dans la recuperation de la variable :

#include <stdio.h>
#include <iostream.h>

void entrer_caractere(char * lettre)
{
 printf("Saisir un charactere : ");
 cin >> *lettre;
}

void main()
//int main(int argc, char *argv[])
{
        entrer_caractere(&lettre);
}


Si qq'un a une idee  merci)


dimanche 15 mai 2005 à 18:27:35 | Re : Passage par adresse ds une fonction

luhtor

Bon deja, tu sais du C++, donc si tu ouvres le fichier iostream.h tu verras en gros:
DO NOT USE THIS FILE IN NEW CODE (ou un truc du genre)

Comment veux tu que ca marche tu définies pas ta variable lettre dans main.
Donc ton programme ca donne ca, et ca marche:
#include <cstdio>
#include <iostream>

using namespace std;

void entrer_caractere(char * lettre)
{
 cout << "Saisir un charactere : ";
 cin >> *lettre;
}

void main()
//int main(int argc, char *argv[])
{
    char ta_lettre;
     entrer_caractere(&ta_lettre);
}

Et voila.



dimanche 15 mai 2005 à 18:35:20 | Re : Passage par adresse ds une fonction

benus

J'ai essayé ca ne marcha pas, j'ai essayé de faire evoluer la fonction comme ca mais rien ne se lance :

#include <stdio.h>

void entrer_caractere(char * lettre)
{
 printf("Saisir un charactere : ");
 gets(lettre);
}

void main()
{
        char lettre;
        entrer_caractere(&lettre);
}


dimanche 15 mai 2005 à 18:38:22 | Re : Passage par adresse ds une fonction

Arnotic

Administrateur CodeS-SourceS
luhtor -> Ton code est du C++ .NET et non du C++ comme notre ami.

En fait le problème est que tu n'as aucun buffer.
Après pour ton problème :

#include <stdio.h>
#include <iostream.h>

void entrer_caractere(char * lettre)
{
 printf("Saisir un charactere : ");
 cin >> *lettre;
}

void main()
//int main(int argc, char *argv[])
{
        char szLettre[1];
        entrer_caractere((char *)&zLettre);
}



@+
Arnotic,
Admin CS, MVP Visual C++


dimanche 15 mai 2005 à 19:09:12 | Re : Passage par adresse ds une fonction

benus

Il me retourne ca et ne lance pas le programme :

[Lieur Erreur] Unresolved external '__InitVCL' referenced from H:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl
[Lieur Erreur] Unresolved external '__ExitVCL' referenced from H:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

dimanche 15 mai 2005 à 19:10:17 | Re : Passage par adresse ds une fonction

luhtor

Pardon ? du .Net ? ah non, j'en veux pas pour le moment :)
C'est le <cstdio> le problème ?
car #include <iostream.h> tu as le droit à un warning de "deprecated".

#include <stdio.h>
#include <iostream>

using namespace std;

void entrer_caractere(char * lettre)
{
 cout << "Saisir un charactere : ";
 cin >> *lettre;
}
int main()
{
        char szLettre;
        entrer_caractere(&szLettre);
        system("PAUSE");
       return 0;
}

C'est quand meme pas du .NET ca. On utilise pas printf et gets en C++.

dimanche 15 mai 2005 à 19:12:54 | Re : Passage par adresse ds une fonction

luhtor

C'est quand meme marqué noir sur blanc mdr :)

Mais maintenant certains compilateurs comme Visual C++ 7.1 (2003) ne fournissent plus que l'entête standard <iostream> et presque tous les autres émettent au moins un avertissement comme quoi utiliser <iostream.h> est obsolète. En le faisant, la portabilité et la compatibilité future de votre code sont menacées.
Voilà pourquoi il faut remplacer toute inclusion de <iostream.h>

Aller ++

dimanche 15 mai 2005 à 19:45:00 | Re : Passage par adresse ds une fonction

steve_clamage

je confirme ce que dis luhtor, iostream.h n'est et n'a jamais étéstandard, le standard c++ definit les en-tetes standard n'ayant pasd'extension et recommande d'utiliser quand c'est necessaire lesen-tetes standard du C dans le namespace std, c'est a dire sansl'extension et prefixé d'un "c"
C++ possède sa propre bibliothèque de gestion des flux i/o (iostream)et permet de manipuler des references (inutile de passer l'adressed'une variable pour qu'elle soit modifiée)


dimanche 15 mai 2005 à 19:51:05 | Re : Passage par adresse ds une fonction

benus

En résumé cette fonction est-elle bien codée ?

#include <stdio.h>

void entrer_caractere(char * lettre)
{
 printf("Saisir un charactere : ");
 gets(lettre);
}

void main()
{
        char lettre[1];
        entrer_caractere(&lettre);
}


dimanche 15 mai 2005 à 19:58:26 | Re : Passage par adresse ds une fonction

vecchio56

Administrateur CodeS-SourceS
Non, lettre n'est pas assez grand, il faut au moins 2 caractères pourloger le zero terminal, mais je ne m'attarde pas, on t'a deja répondusur un autre site :)


1 2

Cette discussion est classé dans : fonction, passage, adresse, ds, lettre


Répondre à ce message

Sujets en rapport avec ce message

Point d'entrée d'une dll [ par sebastienbro ] J'ai remarqué que dans ma dll, ma fonction DllEntryPoint n'était pas appelé lorsque j'éxécutait une application ce servant de cette dll. Je sui donc a Récupération d'une adresse IP avec GetAddress [ par Tribute2U ] Bjr, je cherche un moyen pour récupérer l'adresse IP saisie sur un champ de type 'IP Address'. Je sais que c'est la classe CIPAddressCtrl qui est derr renvoie d'un tableau en char ds une fonction [ par TheBabyCool ] Comment peut on renvoyer un tableau de char du type :char i[][] dans une fonction ?Merci Fonction InternetConnect [ par LordBob ] Bonjour tout le monde,je me pose une question, sur le fonction "InternetConnect" et plus precisement sur le second param !!!en fait il faut marqué l'a adresse d'une fonction membre d'une classe [ par gagah1 ] Salut à tous!Je voudrais avoir l'adresse mémoire d'une fonction membre d'une classe, alors que l'ISO C++ l'interdire l'accès.Je m'explique:J'ai une c probleme systray [ par damien174 ] bonjour est ce ke k'elkun sais ds kel fichier .h se trouve cette fonction : GetSafeHwnd()je voulais ajouter un icone ds le systray mais c++ builder s' fonction lire ds un port série [ par imanewin32 ] pour réaliser la lecture ds un prog qui gére la communication atravers un port série,j'ai réalisé le codeDWORD comserie::lectport(char* e,int t){ Set [C] Passage de tableau par adresse (réference) [ par nitrique ] Bonjour,Je sais que la question a été posée sous des angles différents mais rien n'y fait.J'aimerais passer mon tableau de char à ma fonction par adre Passage d'un tableua en tant qu'argument [ par tibob51 ] Bonjour a tous,Je voudrai passer un tableu de valeurs (qui est constant selon l'appel) mais ma syntaxe ne marche pas (je voudrai essayé de faire comme gethostbyname??? C++ [ par typhoun ] Salut,   Je dois utiliser une adresse IP pour me connecté à un serveur et pour cela j'utilise la fonction struct hostent* FAR gethostbyname(const char


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,076 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.