Afficher un printf ou lire le buffer

Signaler
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008
-
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008
-
Bonjour,
J'ai un printf dans mon code et je voudrais savoir ou et comment je peux le lire avec Visual C++ 2008?
Bien à vous...
A voir également:

17 réponses

Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1
Salut,
Qu'entends tu par lire un printf ?
Un printf ecrit tout simplement dans un flux, qui par défaut correspond à la console.

Shell
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

Voici mon code et je travaille sous Visual C++ 2008



#ifdef WIN32
   #include <windows.h>
   #define snprintf _snprintf
#endif

#include "PI_GCS.h"
#include <string>
#include <math.h>
#include "../../MMDevice/ModuleInterface.h"
#pragma comment(lib, "C843_GCS_DLL.lib")

#include <sstream>
//#using <C843_GCS_DLL.dll>

const char* g_PI_ZStageDeviceName = "PIZStage";
const char* g_PI_ZStageAxisName = "Axis";
using namespace std;
char buffer[1000];
//memset(buffer, 0, 1000);
int ID = C843_Connect(1);
///////////////////////////////////////////////////////////////////////////////
// Exported MMDevice API
///////////////////////////////////////////////////////////////////////////////
MODULE_API void InitializeModuleData()
{
   AddAvailableDeviceName(g_PI_ZStageDeviceName, "PI GCS Z-stage PCI");
   //BOOL _stdcall C843_qIDN();
   //int ID = C843_Connect(1)
   //char buffer[1000];
   memset(buffer, 0, 1000);
   C843_qIDN(ID, buffer, 999);
   printf(buffer);
}





Bien à vous...
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

Je veux voir ce qu'il renvoit.

Bien à vous...
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

y a rien sur ma console qui s'affiche quand je le génère

Bien à vous...
Messages postés
13
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
30 juin 2008

Si il n'y a rien de bloquant derriere et que ton programme se finit, c'est que tu n'a pas le temp de voir ce qui s'affiche, met une instruction bloquante apres, comme getch(), cin>>(c++), ...

Benjamin
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

je comprend pas comment marche visual c++, est ce que c'est quand je génère que ça s'affiche dans la console ou faut il débuger??

Bien à vous...
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
ça s'affiche dans la console, mais comme dit Ben si rien ne bloque la console disparaît aussitôt le programme terminé.
Pour éviter cela, suffit de faire Ctrl+F5 pour exécuter sans debug (ça peut te servir à voir le résultat au moins).
Sinon, est-tu sûr que buffer est rempli correctement? Parce que s'il n'est pas rempli, comme auparavant buffer[0]=0 (avec le memset), printf n'affichera rien.
Messages postés
172
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
12 février 2009
2
Bonjour à tous,
      Je ne pense pas que ça vienne de ça sinon quelqu'un l'aurais déjà remarqué mais parfois ce sont les erreurs le plus bête qu'on ne voit pas...bref...Dans la dernière ligne tu a printf(buffer); or il me semble (mais je n'ai pas vérifié) que cette syntaxe ne fonctionne pas mais qu'il faut mettre printf("%s", buffer);
Et je  te dirais comme Benjam, qu'il faudrais mettre un getch(); après.

Cordialement, B@stien.//@++
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
12
"Dans la dernière ligne tu a printf(buffer); or il me semble (mais je n'ai pas vérifié) que cette syntaxe ne fonctionne pas mais qu'il faut mettre printf("%s", buffer);"

printf("Bonjour"); // fonctionne

char buffer[] = "Bonjour";
printf(buffer); // fonctionne aussi

et logiquement, je ne vois pas pourquoi ça ne pourrait pas fonctionner.

C++ (@++)
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

Qu'est ce qu'il faut rajouter dans les include pour que le getch marche??

Pour déboguer une DLL faut utiliser quoi comme exécutable??

Bien à vous...
Messages postés
172
Date d'inscription
dimanche 10 décembre 2000
Statut
Membre
Dernière intervention
12 février 2009
2
Slt,
   Désolé il me semblait que printf(buffer); ne fonctionnait pas...on fait tous des erreurs.
En ce qui concerne le getch();, c'est dans conio.h.

Cordialement, B@stien.//@++
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009

Bonjour,

printf(buffer) fonctionne, même s'il y a des séquences de formatages (%s par exemple) dans buffer, par contre, dans ce cas là, comme il n'y a pas de variable(s) associée(s) ça va afficher n'importe quoi !

Jean-François
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

Merci , pas de problème pour les erreurs..
En fait j'ai ça :
The C843_qIDN() has three
parameters: ID (you get this from C843_Connect()), a buffer
to be filled with the response, a variable with the length
of the buffer).
Comment fait on pour rentrer la réponse dans le buffer??
Je sais si c'est compréhensible
Bien à vous...
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

Voici la partie de mon code :

MODULE_API void InitializeModuleData()
{
   AddAvailableDeviceName(g_PI_ZStageDeviceName, "PI GCS Z-stage PCI");
   int ID = C843_Connect(1);
   char buffer[1000];
   memset(buffer, 0, 1000);
   C843_qIDN(ID, buffer, 999);
   printf(buffer);

}

Bien à vous...
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

BOOL C843_FUNC_DECL C843_qIDN (const int iId, char *const buffer, const int maxlen)

Bien à vous...
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009

Si c'est pour formater des données dans buffer alors il faut utiliser sprintf(buffer,format,variables). Ca s'utilise comme printf() mais le résultat du formatage va dans la chaîne de caractères passée en premier paramètre et non sur la console.

Ex: sprintf(buffer,"ID=%d",ID);

Jean-François
Messages postés
59
Date d'inscription
jeudi 19 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2008

Merci les gens...En fait fallait que j'utilise une application un .exe!!

Bien à vous...