Question peut-être stupide...

Résolu
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007 - 2 avril 2006 à 03:18
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007 - 7 avril 2006 à 02:59
Bonjour,
je suis en train de programmer un petit programme et je voudrais qu'en faisant
c=mafonction();
c étant un char, me retourne une variable contenu dans la fonction mafonction(); qui est une variable char. Comment faire ???
J'avais pensé a un return, mais ca ne fonctionne pas... Ou si c'est cela, expliquez-moi comment...





Merci

bloom1

22 réponses

Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
2 avril 2006 à 11:57
Bonjour
Pour que la fonction retourne un type il faut la renseigner dans la définition
char ma_fonction(void);

Et dans le code
char ma_fonction(void)
{
char carac;
...
...
return(carac);
}

Et dans la fonction (main par exemple) tu peux écrire ton truc => c=ma_fonction();
(tu récupères la valeur de carac mais cette variable devient hors de portée après le return...)
++
3
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 03:20
me retourne une variable contenu dans la fonction mafonction(); qui est une variable char. Comment faire ???
En fait, je voudrais que la fonction me retourne une variable nommée carac qui est un char.

J'ai corrigé cela parce que ce n'étais pas compréhensible... lol :p

bloom1
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 03:42
err... tu fait
return carac;

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 03:50
Hmm bon. Il te faut des bon tutoriaux. Va voir sur http://c.developpez.com/cours/
En attendant voici un petit exemple de fonction retournant un char

char MaFonction (void)
{
char Test = 'c';

return Test;
}

Et voila. C'est pas très compliquer.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0

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

Posez votre question
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 04:10
Ok merci je vais tester et si ca fonctionne, Réponse Acceptée

bloom1
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 04:15
Grrr.
En fait je programme un Kernel lool j'avais déja essayé... C'est pour la fonction getch que j'ai reprogrammé... Mais toujours rien... :( :(

bloom1
0
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
2 avril 2006 à 12:08
la renseigner lors du prototye* de la fonction:
char ma_fonction(void);
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 15:30
Comment ça toujours rien. C'est quasi impossible. Post la partie de ton code qui ne fonctionne pas.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 19:36
C'est correct, ca me retourne de quoi, mais la il reste à l'afficher(P.S : je programme un kernel[OS])

bloom1
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 20:53
A mais c'est ce que je disais. Pour afficher, il faut écrire directement dans la mémoire video. Petit indice la mémoire video est localiser à l'adresse 0xB8000

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 20:55
Je le sais, ma librairie vidéo est faite au complet, j'ai même fais une fonction pour changer la couleur du texte et son fond, et même une fonction pour scroller... J'ai tout fais ces étapes, il me manque juste mon read...

bloom1
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 20:57
En fesant ceci ((*(volatile BYTE *) (0xB8000)) = ('c')) tu va te trouver à écrire c à l'écran. Pour écrire une autre lettre après c'est ((*(volatile BYTE *) (0xB8002)) = ('c')) et ça va afficher cc. C'est tout.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 20:58
Ha oki.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 21:00
lol
Même de ca, je suis capable d'écrire des chaines de caractères, et des lettres une a unes grace a deux fonctions : une c'est putlettre (ca dit tout) et l'autre c'est printfs qui utilise putlettre pour écrire des chaines (et j'ai réussi a recréer la fonction printf avec mon printfs)

bloom1
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 21:21
Hmmm c'est bien est tu capable de géré le clavier?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
2 avril 2006 à 21:23
Oui c'est avec l'interruption 64, j'ai réussi a faire un keymap, et de retourner un char mais il est pas bon le char qui retourne lol va falloir que j'arrange ca

bloom1
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
2 avril 2006 à 21:31
Oui je sais. Il faut convertir la valeur renvoyer en ANSI
essais ça. Arrange le tableau car moi c'est pour un clavier canadien français.

BYTE ConvertKeyToAscii (BYTE Key)
{
static const BYTE key_normal[] =
{
0, 0x1B, '1', '2', '3', '4', '5', '6',
'7', '8', '9', '0', '-', '=', 0x01, '\t',
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i',
'o', 'p', '^', '¸', '\r', 0, 'a', 's',
'd', 'f', 'g', 'h', 'j', 'k', 'l', ';',
'ù', '²', 0, '«', 'z', 'x', 'c', 'v',
'b', 'n', 'm', ',', '.', 'é', 0, '*',
0, ' ', 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, '7',
'8', '9','-', '4','5','6', '+', '1',
'2', '3','0','.',0, 0, '<', 0,
0
};

return key_normal[Key];
}

BYTE Key = NULL;
/* tu récupère les out du clavier dans Key*/
if(Key <= 0x80) /* si le boutton est pressé */
Key = ConvertKeyToAscii(Key&0x7F);

Key va être après en valeur ansi et correctement utilisable

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
4 avril 2006 à 02:33
Moi aussi je suis sur un clavier canadien Francais, j'habite au Québec lol
Mais si on appuie sur la touche SHIFT ??? lol moi j'ai une keymap avec les majuscules intégrées... Il faudrait qu'on puisse gérer le SHIFT :p
Mais si on veux stocker les lettres dans une variable, pour pouvoir ensuite vérifier quelle commande a été tappée, comment fait-on ???

bloom1
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
4 avril 2006 à 22:35
pffffffffffff. D'après moi tes plus avancé que moi dans ce domaine. J'ai arrêter ce projet pour me concentrer sur ma librairie graphique. Désolé.
p.s. Content de voir que je suis pas le seul Québecois ici.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bloom1 Messages postés 328 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 8 mars 2007
5 avril 2006 à 02:14
Ta librarie graphique... C'est quoi ta librairie graphique ?
bloom1
0
Rejoignez-nous