Souci de débutant en programmation

Résolu
Bonjour,
Je suis en train de faire mon premier programme informatique qui consiste a faire dire bonjour à mon ordinateur, mais , lors de la compilation ( avec VisualC++Express2008) il me met 1 erreure, je vais donc voir. et il me dit précisément:
"error C2055: liste de paramètres formels attendue, non une liste de types",là est mon problème, c'ets que je connais aucune des deux type de liste, on m'a dit que c'était parce que je n'avais pa mis de variable, mais je ne sais pa comment mettre une variable dans mon programme:
#include <stdlib.h>
#include <stdio.h>

int*main(const int)

{
("bonjour");
system("PAUSE");
return 0;
}
ceci est mon programme, dite moi se qu'il maque s'il vous plaît.
D'anvance merci.
A bientôt
Configuration: Windows Vista
Internet Explorer 7.0

35 réponses

Résumé de la discussion

Le problème principal est l'erreur de compilation C2055: liste de paramètres formels attendue, non une liste de types, causée par la signature de main et par l'utilisation incorrecte de « bonjour » sans fonction d'affichage. Plusieurs réponses recommandent de remplacer int*main(const int) par int main(void) ou int main(int argc, char** argv), et d'utiliser printf pour afficher Bonjour puis d'appeler system('PAUSE'). D'autres précisent que les bibliothèques stdio.h et stdlib.h permettent respectivement d'exécuter printf et PAUSE, et que l'instruction « bonjour » n'a aucun effet sur la sortie finale. En complément, certains suggèrent d'essayer un autre environnement de développement et retiennent que la simplicité de la signature de main et l'usage clair de printf facilitent l'apprentissage.

Bobot (l’IA à votre service)
  1. voici se que j'ai fait:
    #include <stdlib.h>
    #include <stdio.h>

    int main();
    int secondary()
    {
    system("AFFICHER IMAGE");
    printf <forest.jpg>;
    printf("bonjour ! Comment allez-vous aujourd'hui ?\n\n");
    system("PAUSE");
    return 0;
    }
    et il me dit:
    error C2065: 'forest' : identificateur non déclaré
    error C2228: la partie gauche de '.jpg' doit avoir un class/struct/union le type est ''unknown-type''
    error C2059: erreur de syntaxe : ';'
    alors, que doi'je faire pour que mon programme m'affiche une image? est'ce possible qu'en fenetre?
    1. ba maintenan, j'aimerai savoir faire autre chose, mais je sai pas quoi! pourrai tu m'orientez en fonction de mon nivo( très moindre ) en pour me faire progresser ( du genre inclure un video ou ds fichier dans un programme si c'est possible)
      1. Ben, comme je suis étudiant en informatique, j'apprends comme ça et sans livres...
        1. ok, je vois la difficultée, mais tu connais des livres de programmation?
          1. Ah alors là ça demande une explication.

            En fait tu as deux types de programmes : les programmes console et les programmes fenêtre.

            Actuellement, en utilisant ton navigateur, tu utilises un programme fenêtre :) La plupart des programmes de nos jours sont des fenêtres (Word, Paint, Internet, Excel, Calculatrice, etc etc : des programmes fenêtre).

            Mais avant, les programmes étaient exécutables en "console" : c'est ce que tu vois quand tu allumes ton ordi par exemple. Les ordinateurs n'avaient pas suffisamment de mémoire pour gérer les interfaces graphiques des fenêtres, et donc étaient en console.
            Aujourd'hui on en est bien loin et logiquement tous les programmes sont en fenêtre.

            Cependant, tout programme a un fichier "main" (comme la fonction que tu as créée).
            Plus tard quand tu devras créer des programmes de milliers de lignes, tu peux faire des milliers de lignes de fenêtre, il te faudra forcément un petit programme console, qui dirige tout le reste.

            Pour le moment, il faut que tu apprennes toutes les subtilités de la console (boucles, conditions, affectations, pointeurs, tableaux, etc etc), et après seulement tu pourras créer des programmes fenêtre.

            Pour te donner une idée de la complexité de la chose en fenêtre :

            Voici un programme console (que tu connais bien maintenant) :

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

            int*main()

            {
            printf("bonjour\n\n");
            system("PAUSE");
            return 0;
            }


            Et maintenant voici un programme fenêtre (VIDE !) :
            (vide : ça veut dire qu'il ne fera que t'afficher une fenêtre!)


            #include <windows.h>

            /* Declare Windows procedure */
            LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

            /* Make the class name into a global variable */
            char szClassName[ ] = "WindowsApp";

            int WINAPI WinMain (HINSTANCE hThisInstance,
            HINSTANCE hPrevInstance,
            LPSTR lpszArgument,
            int nFunsterStil)

            {
            HWND hwnd; /* This is the handle for our window */
            MSG messages; /* Here messages to the application are saved */
            WNDCLASSEX wincl; /* Data structure for the windowclass */

            /* The Window structure */
            wincl.hInstance = hThisInstance;
            wincl.lpszClassName = szClassName;
            wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
            wincl.style = CS_DBLCLKS; /* Catch double-clicks */
            wincl.cbSize = sizeof (WNDCLASSEX);

            /* Use default icon and mouse-pointer */
            wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
            wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
            wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
            wincl.lpszMenuName = NULL; /* No menu */
            wincl.cbClsExtra = 0; /* No extra bytes after the window class */
            wincl.cbWndExtra = 0; /* structure or the window instance */
            /* Use Windows's default color as the background of the window */
            wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

            /* Register the window class, and if it fails quit the program */
            if (!RegisterClassEx (&wincl))
            return 0;

            /* The class is registered, let's create the program*/
            hwnd = CreateWindowEx (
            0, /* Extended possibilites for variation */
            szClassName, /* Classname */
            "Windows App", /* Title Text */
            WS_OVERLAPPEDWINDOW, /* default window */
            CW_USEDEFAULT, /* Windows decides the position */
            CW_USEDEFAULT, /* where the window ends up on the screen */
            544, /* The programs width */
            375, /* and height in pixels */
            HWND_DESKTOP, /* The window is a child-window to desktop */
            NULL, /* No menu */
            hThisInstance, /* Program Instance handler */
            NULL /* No Window Creation data */
            );

            /* Make the window visible on the screen */
            ShowWindow (hwnd, nFunsterStil);

            /* Run the message loop. It will run until GetMessage() returns 0 */
            while (GetMessage (&messages, NULL, 0, 0))
            {
            /* Translate virtual-key messages into character messages */
            TranslateMessage(&messages);
            /* Send message to WindowProcedure */
            DispatchMessage(&messages);
            }

            /* The program return-value is 0 - The value that PostQuitMessage() gave */
            return messages.wParam;
            }

            /* This function is called by the Windows function DispatchMessage() */

            LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
            {
            switch (message) /* handle the messages */
            {
            case WM_DESTROY:
            PostQuitMessage (0); /* send a WM_QUIT to the message queue */
            break;
            default: /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
            }

            return 0;
            }


            Bref, prends ton temps et apprends doucement la console, et un jour tu pourras travailler en fenêtre !
            1. est-ce que l'on peut mettre un fond d'écran sur le programme? Parce que c'est pa beau en noir....
              1. surtou que je vais m'engager dans la robotique, se sera pas de la tarte.....
                1. De rien ;)

                  Mais si peut ne pas te rassurer (XD) tu vas très vite voir des trucs bien plus compliqués que ça XD
                  1. pour l'instant non, mais quand j'aurai un probleme je te recontacterai via se site ou sinon, je devrai pas atrder a avoir besoin d'information sur des bouquin qui parle de programmation (des cours en gros) et besoin d'en savoir + sur les variable
                    Encore mille merci pour avoir aider a la constitution de mon premier programme.
                    A+
                    1. Ben, je vois surtout pas l'intérêt de mettre un int main (const int), un int main() suffit très bien.

                      Bon et maintenant, tu veux savoir autre chose? :)
                      1. en fait, quand g écrit mon programme,en dessous du curseur ya eu un truc d'afficher, je l'ai recopier betement, d'où le "const int " et "int*main"
                        1. Ben c'est exactement ce que je t'avais dit XD
                          Sauf que je comprends pas trop pourquoi c'est "int*main"...
                          Sûrement une particularité de Visual...
                          1. sa y est, voici mon programme enfin terminer:
                            #include <stdlib.h>
                            #include <stdio.h>

                            int*main()

                            {
                            printf("bonjour !\n\n");
                            system("PAUSE");
                            return 0;
                            }
                            1. Si je peux te donner un conseil... Télécharge Dev-C++, il est plus simple d'utilisation et très bien pour débuter. T'auras pas tout ce bordel avec ;)
                              1. "general error c1010070: Failed to load and parse the manifest. Le fichier spicifii est introuvable."
                                voilà se qu'il m'a répondu
                                1. Tiens :

                                  ____________________________

                                  //Ici, les bibliothèques, qui servent à faire de nombreuses instructions du C. Stdio & StdLib sont les plus basiques.

                                  #include <stdio.h> //Cette bibliothèque sert à "faire fonctionner" l'instruction printf.
                                  #include <stdlib.h> //Celle ci sert à faire fonctionner l'instruction system("PAUSE"), afin que ton programme se mette en pause
                                  //Sans le systeme("PAUSE"), la console se ferme directement (essaie de l'enlever, tu verras).

                                  int main() //Ici, on déclare la fonction "main" ("principale" en anglais), dans laquelle tu vas indiquer tes instructions.
                                  { //On ouvre toujours une fonction avec un crochet.
                                  printf("Bonjour !\n\n");//"printf" est la plus basique des instructions, elle sert à afficher du texte à l'écran.
                                  //Les deux "\n" sont en fait des retours à la ligne. Essaie de les enlever pour vérifier.

                                  system("PAUSE"); //Le systemPAUSE dont je parlais au dessus.
                                  return 0;//Le "return 0" est une convention qui indique que le programme s'est correctement exécuté.
                                  }//On ferme la fonction main.
                                  1. Ben c'est normal, tu écris juste ("bonjour"), pour la machine ça veut rien dire !

                                    Fais un copier coller de mon programme (en italique) et regarde tu verras :)
                                    • 1
                                    • 2