Partage
  • Partager sur Facebook
  • Partager sur Twitter

Listes des fonctions C

(fonctions standards)

25 avril 2006 à 22:10:43

Merci pour cette belle liste :)

Mais il n'y aurait pas une fonction qui permettrait au programme de recommencer à zéro (le faire "redémarrer" sans éteindre la console) ... ?

Merci d'avance! ;)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 avril 2006 à 9:01:35

Un bête boucle
  • Partager sur Facebook
  • Partager sur Twitter
18 octobre 2006 à 14:34:46

Ou bien un petit continue; juste avant la fin de la fonction main si ca n'a pas été dit^^ (bon avec une condition avant bien sur :p )
(auto edit zut j'ai aps vu la date, c'etait dans les nouveaux messages...)
  • Partager sur Facebook
  • Partager sur Twitter
30 octobre 2006 à 2:45:42

Bonjour (ou bonsoir) à tous!

Voici mon problème: je ne comprends pas comment je suis sensé comprendre qu'est-ce que fait une fonction du genre <<printf>>. Je sais que je peux trouver son prototype dans la bibliothèque <<includes>>. Cependant, comment suis supposé comprendre son fonctionnement? M@teo21 a écrit dans son cours sur le C que les .c étaient en fait des .o. J'aimerais qu'on m'explique...

Merci d'avance,
Olivier


P.S.: Désolé si mes termes ne sont pas exacts, j'ai fait au mieux que ma mémoire me le permettait.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 octobre 2006 à 17:53:58

Heu... Tu n'est pas sencé savoir le fonctionnement interne de printf, surtout qu'il varie d'une plate-forme a l'autre. Je ne voit pourquoi tu te sens obligé de comprendre comment printf fonctionne. Son code source se trouve sous sa forme compilée dans un fichier bibliothèque (.a).

Tu ne risques pas de trouver les fichiers .c correspondants, sauf si tu les télécharges, tu n'a normalement que la version compilée de ce fichier (.a puisque c'est une bibliothèque. Rappel : un .a ou .o n'est autre qu'un fichier .c compilé, et l'assemblage de .o avec éventuellement des .a donnent le programme final).

Enfin, tu devrais créer un nouveau topic pour exposer ton problème...
  • Partager sur Facebook
  • Partager sur Twitter
26 décembre 2006 à 21:18:19

Ce que je voulais dire, c'est que je ne comprends pas comment faire pour, par exemple, savoir comment gérer les erreurs de telle fonction, si elle renvoit un pointeur ou un booléen, etc.

J'espère avoir été plus précis cette fois.

Merci d'avance,
Vhann
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
27 décembre 2006 à 8:39:31

Ben je sais pas, dans le prototype, tu vois bien quel type est renvoyé non?
Rappel> un fichier .o ets un fichier .c (en gros) compilé, et un .a est un assemblage de .o .
  • Partager sur Facebook
  • Partager sur Twitter
30 décembre 2006 à 1:19:44

Citation : Vhann

Ce que je voulais dire, c'est que je ne comprends pas comment faire pour, par exemple, savoir comment gérer les erreurs de telle fonction, si elle renvoit un pointeur ou un booléen, etc.


Si tu cherches une description de l'interface et du comportement de cette fonction, la meilleure référence est la norme, évidemment :

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

J'espère que tu lis l'anglais informatico-juridique couramment.
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
31 décembre 2006 à 14:16:36

Bonjour, j'ai un petit problème quand je marque la fonction "if" celle-ci ne marche pas quand je la compile. Pourais-je avoir de l'aide s'il vous plait?
  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2006 à 15:52:17

Citation : pepilo

Bonjour, j'ai un petit problème quand je marque la fonction "if" celle-ci ne marche pas quand je la compile. Pourais-je avoir de l'aide s'il vous plait?


Merci de poser ta question dans le forum directement. Ca ne se fait pas de pirater un post-it avec une question...

Et soit plus précis, parce que sans voir ton code exact, on ne peut pas deviner quel erreur tu as faite...

(modérateurs prévenus pour déplacement)
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
31 décembre 2006 à 19:46:08

if (age > 30 || argent > 100000)

Quand je marque cette phrase on me signale une erreur.Est-ce normal?
  • Partager sur Facebook
  • Partager sur Twitter
1 janvier 2007 à 4:39:51

Citation : pepilo

if (age > 30 || argent > 100000)

Quand je marque cette phrase on me signale une erreur.Est-ce normal?


Si il n'y a rien avant, oui. Montre ton code. (Je me répète, non ? Ca doit être l'age...)
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
1 janvier 2007 à 11:46:42

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{if (age > 30 || argent > 100000)
{
printf("Bienvenue chez PicsouBanque !");
}
else
{
printf("Hors de ma vue, miserable !");
}

system("PAUSE");
return 0;
}


c'est exactement cette phrase et l'erreur se touve à la phrase en if.
  • Partager sur Facebook
  • Partager sur Twitter
1 janvier 2007 à 12:33:35

tu as pas oublier de définir les variable age et argent par hasard...?(si s'est ton exactement ce code s'est pour ça)
  • Partager sur Facebook
  • Partager sur Twitter
1 janvier 2007 à 13:31:14

Merci de lire les regles du forum et d'utiliser les balises code.

Citation : pepilo



#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
   if (age > 30 || argent > 100000)
   {
      printf("Bienvenue chez PicsouBanque !");
   }
   else
   {
      printf("Hors de ma vue, miserable !");
   }
 
   system("PAUSE");     
   return 0;
}


c'est exactement cette phrase et l'erreur se touve à la phrase en if.


Les erreurs sont pourtant claires, non ?

Project   : Forums
Compiler  : GNU GCC Compiler (called directly)
Directory : C:\dev\forums2\
--------------------------------------------------------------------------------
Switching to target: default
Compiling: main.c
main.c: In function `main':
main.c:5: error: `age' undeclared (first use in this function)
main.c:5: error: (Each undeclared identifier is reported only once
main.c:5: error: for each function it appears in.)
main.c:5: error: `argent' undeclared (first use in this function)
main.c: At top level:
main.c:4: warning: unused parameter 'argc'
main.c:4: warning: unused parameter 'argv'
Process terminated with status 1 (0 minutes, 2 seconds)
4 errors, 2 warnings

Tu utilises des variables qui n'ont jamais été ni définies, ni initialisées. Comment veux-tu que ton code fonctionne ?

Je te conseille de reprendre calmement le tuto C depuis le début.

http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c-c.html
  • Partager sur Facebook
  • Partager sur Twitter
Music only !
1 janvier 2007 à 21:46:34

Merci pour cette aide précieuse. Maintenant sa marche comme sur des roulettes!
  • Partager sur Facebook
  • Partager sur Twitter
10 février 2007 à 1:28:38

Citation : Mustang80

Merci pour cette belle liste :)

Mais il n'y aurait pas une fonction qui permettrait au programme de recommencer à zéro (le faire "redémarrer" sans éteindre la console) ... ?

Merci d'avance! ;)



Il y a encore plus facile (une idée recommendé par mon ami Nesquik69 que je remercie) tu fais ton programme et juste avant le return 0; tu fais :
main();

et ça reviendras au début du programme voici un petit exemple d'une calculatrice :
#include <stdio.h>
#include <stdlib.h>

int main()
{
        long choix = 0;
        long num_1 = 0;
        long num_2 = 0;
        long result = 0;

    printf("1-Addition \n2-Soustraction \n3-Multiplication \n4-Division \n5-Quitter ");
        printf("Ma calculatrice \nEntrez votre choix \t");
        scanf("%ld", &choix);
        printf("Vous avez choisi le nombre %ld \t", choix);

        if(choix == 1)
        {
            printf("***Adiition*** \n");
            scanf("%ld", &num_1);
            printf("\t + \t");
            scanf("%ld", &num_2);
            result = num_1 + num_2 ;
            printf("\t = %ld \n \n", result);
        }

        else if (choix ==2)
        {
            printf("***Soustraction*** \n");
            scanf("%ld", &num_1);
            printf("\t - \t");
            scanf("%ld", &num_2);
            result = num_1 - num_2 ;
            printf("\t = %ld \n \n", result);
        }

    else if (choix ==3)
        {
            printf("***Multiplication*** \n");
            scanf("%ld", &num_1);
            printf("\t x \t");
            scanf("%ld", &num_2);
            result = num_1 * num_2 ;
            printf("\t = %ld \n \n", result);
        }

    else if (choix ==4)
        {
            printf("***Divison*** \n");
            scanf("%ld", &num_1);
            printf("\t / \t");
            scanf("%ld", &num_2);
            result = num_1 / num_2 ;
            printf("\t = %ld \n \n", result);
        }

        else if (choix ==5)
        {
            return 0;
        }

        else
        {
            printf("Fausse cordonnee !!! :o(  \n");
        }


    main();

        return 0;
}

et désolé si c'est déja dit :D
@+
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
10 février 2007 à 14:11:41

jellalit: non. tu arrêtes comment le prog?
  • Partager sur Facebook
  • Partager sur Twitter
10 février 2007 à 15:06:19

Oui j'avais oublié de dire qu'il faut faire une option pour fermer le programme regarde dans mon code et tu verras que j'ai mis une option pour quitter.


        else if (choix ==5)
        {
            return 0;
        }

vous voyez c'est là si l'utilisateur veut quitter il choisi 5
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
11 février 2007 à 10:08:53

Les return multiples, c'est pas beau.
Utilise plutôt un booléen pour savoir s'il faut continuer ou pas.
  • Partager sur Facebook
  • Partager sur Twitter
7 mars 2007 à 9:47:03

Bonjour à tous ...

J'espère être dans la bonne section ...

Je voudrais savoir si quelqu'un saurais si il existe une librairie C qui comporterai des fonction de statistique telle que des loi de fisher ou Student ???

Merci

Dam
  • Partager sur Facebook
  • Partager sur Twitter
Tout ce qui a été crée par l'Homme devrait être patrimoine de l'humanité. Vous êtes perdu ?, là ce sera trop loin.
Anonyme
7 mars 2007 à 13:01:37

Librairie certainement pas. Bibliothèque, ça, je sais pas.
  • Partager sur Facebook
  • Partager sur Twitter
18 avril 2007 à 0:25:39

Salut

Je cherche une fonction qui retourne le type du nombre entré, si c'est un int elle retourne donc 4 octets, ... etc. Ou astuce s'il y a quelque chose du même genre. PS : est ce que le typage forcé change la taille d'un nombre sinon je ne trouve pas son utilité ?

SOS svp :p

merci d'avance
  • Partager sur Facebook
  • Partager sur Twitter
18 avril 2007 à 0:29:16

Citation :

Je cherche une fonction qui retourne le type du nombre entré, si c'est un int elle retourne donc 4 octets..


Tu veux dire la taille du type du nombre entré ?
=> sizeof()

Citation :

est ce que le typage forcé change la taille d'un nombre


C'est le genre de question qu'n test permet de répondre, à toi de le faire.
  • Partager sur Facebook
  • Partager sur Twitter
18 avril 2007 à 0:44:51

double bidule1 = 0.0, bidule2 = 0.0;
(int) bidule2 = 2;

cout << sizeof(bidule1) << " " << sizeof(bidule2);

8 8


:-°
  • Partager sur Facebook
  • Partager sur Twitter
18 avril 2007 à 0:49:10

Ce test prouve qu'un cast ne modifie pas le type de la variable originale "pour de bon" point.
Mais il y a encore d'autre chose à tester..
Un test plus complet:
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
   long i;
   printf("%d\n",sizeof(    i    ) );
   printf("%d\n",sizeof( (char)i ) );
   printf("%d\n",sizeof(    i    ) );
   
   i = (char) i;
   
   printf("%d\n",sizeof(    i    ) );
   
   system("PAUSE");
   return 0;
}
  • Partager sur Facebook
  • Partager sur Twitter
18 avril 2007 à 1:01:12

j'ai tester ton code :)
j'ai fait un menu ou l'utilisateur ne peut entrer que des int. La variable choix qui récupère ce nombre je l'ai mis comme int. Mais si un malveillants à entrer un choix erroné c-à-d un double, comment résoudre le pb. Qu'est ce que je doit ajouter dans le switch pour pouvoir tester ce que l'utilisateur à entrer ?
  • Partager sur Facebook
  • Partager sur Twitter
18 avril 2007 à 1:11:02

Citation :

si un malveillants à entrer un choix erroné c-à-d un double, comment résoudre le pb.


On va dire que "le type de la variable est le plus fort",
C'est à dire que si tu rentre un double dans un int, alors la valeur sera un nombre entier.

De la même manière tu peux faire une série de test pour voir comment tout ça se comporte.
  • Partager sur Facebook
  • Partager sur Twitter