Fonction_c++

Résolu/Fermé
julia - 11 déc. 2008 à 15:08
 julia - 11 déc. 2008 à 16:04
Bonjour,
Bonjour,
j'ai fais une fonction qui transfrome un char en int .. en c++ la voila :

include<iostream.h>
using namespace std;
int main(){
char c;
int a;
cout<<"donner un caractére"<<endl;
cin>>c;
a=c;
cout<<"son code ascii est "<<a
system("pause");
return 0;
}

comment je peux la modifier pour obtenire le code ascii d'une chaine de caractére et n'est pas un caractére????
merci

4 réponses

mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
11 déc. 2008 à 15:16
En fait ton programme comporte quelques erreurs :
- de nos jours on n'inclue plus <iostream.h> mais <iostream>,
- tu peux laisser le "using namespace std;" (ce qui évite d'avoir à mettre les std::) mais attention à ne pas le faire dans des headers (fichiers .hpp). Personnellement je te conseille plutôt de mettre les std:: même si c'est un peu plus lourd à écrire,
- évite le system("pause"); qui est spécifique à windows et utilise plutôt la fonction getchar(); (header <cstdio>).

Voici ce que ça donne à la fin :
#include <iostream>

int main(){
    char c;
    int a;
    std::cout << "donner un caractére" << std::endl;
    std::cin >> c;
    a = c;
    std::cout << "son code ascii est " << a << std::endl;
    getchar();
    return 0;
}

Et à l'exécution :
donner un caractére
f
son code ascii est 102

Bonne chance
1
bah en faite mon programme marche trés bien sous dev c++... maintenat c qui compte comment créér une fonction qui converti une chaine de cara en code ascii
par exemple :
donner une chaine de caracter
mamiemando
le code ascii est
23445445436




c just un ex
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
11 déc. 2008 à 15:30
Je sais que ton code marchera sous windows tel que tu l'as donné, mais je t'invite néanmoins à y apporter les corrections que je t'ai donnée afin qu'il soit propre, actualisé et portable. En outre il manquait un # et un ; dans ton code de départ. Je sais que c'est un exercice mais il faut prendre les bonnes habitudes dès le début ;-) Après tu fais comme tu veux :p

Pour la suite de ton exercice il suffit de lire une chaîne (std::string, header <string>) au lieu d'un caractère et de la parcourir avec une boucle for.
https://community.hpe.com/t5/custom/page/page-id/HPPSocialUserSignonPage?redirectreason=permissiondenied&referer=https%3A%2F%2Fcommunity.hpe.com%2Ft5%2FServers-Systems-The-Right%2FSGI-com-Tech-Archive-Resources-now-retired%2Fba-p%2F6992583

Tu peux facilement récupérer la longueur d'une chaîne avec la méthode avec la méthode size(). Je te donne le début et je te laisse finir ton exercice :
#include <iostream>
#include <string>
#include <cstdio>

int main(){
    char c;
    int a;
    std::cout << "tapez une chaine" << std::endl;
    std::cin >> s;
    std::cout << "son code ascii est ";
    for(std::size_t i = 0 ; i <s.size() ;++i){
        //... à toi de jouer
    }
    std::cout << std::endl;
    getchar();
    return 0;
}

Bonne chance
1
merci grave :)
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
11 déc. 2008 à 15:54
À votre service ;-)

Bonne continuation !
0
svp.... pouvez vous m'expliquer le principe de fonction random ???
0
mamiemando Messages postés 33093 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 4 mai 2024 7 752
11 déc. 2008 à 16:02
Oui mais dans un nouveau sujet (forum programmation). Dans un premier temps cherche sur google (ou tape dans un terminal sous linux) :
man srand

Bonne chance
0
ok... en tt cas merci infiniment
0