begin process at 2010 02 10 12:28:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Passage par adresse ds une fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Passage par adresse ds une fonction

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ée 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

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales