Comment prendre les ints de l'utilisateur en utilisant fgets en C?

Je suis un débutant en C. je suis en train d'écrire un programme qui calcule le volume basé sur la saisie de l'utilisateur de 3 nombres entiers à l'aide fgets(), et j'ai du mal à comprendre pourquoi mon code ne fonctionne pas.

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

int volumn(int a, int b, int c);

int main(int argc, char* argv[]){
    char* height, width, depth;
    fgets(&height, 10, stdin);
    fgets(&width, 10, stdin);
    fgets(&depth, 10, stdin);

    printf("\nThe volumn is %d\n", volumn(atoi(&height), atoi(&width), atoi(&depth)));

    return 0;
}

int volumn(int a, int b, int c){
    return a * b * c;
}

MODIFIER: j'obtiens les erreurs suivantes/avertissements lorsque j'exécute le code ci-dessus:

goodbyeworld.c:8:11: warning: incompatible pointer types passing 'char **' to
      parameter of type 'char *'; remove & [-Wincompatible-pointer-types]
    fgets(&height, 10, stdin);
          ^~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h:238:30: note: 
      passing argument to parameter here
char    *fgets(char * __restrict, int, FILE *);
                                ^
goodbyeworld.c:12:48: warning: incompatible pointer types passing 'char **' to
      parameter of type 'const char *'; remove & [-Wincompatible-pointer-types]
    printf("\nThe volumn is %d\n", volumn(atoi(&height), atoi(&width), a...
                                               ^~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdlib.h:132:23: note: 
      passing argument to parameter here
int      atoi(const char *);
                          ^
2 warnings generated.
  • Bonjour et bienvenue à Débordement de Pile! Pourriez-vous être un peu plus précis sur la façon dont il ne fonctionne pas? Est-il de la compilation? Ne vous obtenez des messages d'erreur? Si il fonctionne, ce qui se fait lorsqu'il s'exécute? Merci d'éditer votre question.
  • Toujours, lors de la compilation, de permettre à toutes les mises en garde (pour gcc, à une utilisation minimale: -Wall -Wextra -pedantic) fixer ensuite les mises en garde. Avec la publication de code, vous voyez deux mises en garde: 1) unused variable 'argc' 2) unused variable 'argv [] ğ, ainsi que les mises en garde vous voit déjà.
InformationsquelleAutor johnwj | 2015-09-14