Je suis en train de suivre un cours sur les "méthodes de programmation structurées". Le cours n'est pas basé sur le langage, mais nous utilisons généralement C ou C++. Parfois, je suis obligé d'écrire dans l'une de ces langues, parfois je dois d'abord écrire en C et convertir le code en C++, et parfois je suis autorisé à écrire dans ce que je préfère. Très probablement bizarre, je préfère utiliser C (f/p) rintf. Alors, voici ma question:Comment utiliser fprintf pour imprimer les valeurs d'un membre struct définies dans un fichier d'en-tête?
Ceci est mon fichier d'en-tête pour le struct
:
#include <string>
using namespace std;
typedef string FNAME;
typedef string LNAME;
typedef string FULLNAME;
typedef struct EmpRecord
{
FNAME firstname;
LNAME lastname;
FULLNAME fullname;
float hours, rate, deferred, gross, netpay,
fedtax, statetax, ssitax;
} EmpRecord;
est ici le « principal » Cpp:
#define STRADD ", "
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include "Struct.h"
#include "Rates.h"
#include "calcTaxesPlus.cpp"
using namespace std;
/*......*/
void printEmpData(FILE *fp, struct EmpRecord *, float reghrs, float othrs);//3.8
/*......*/
int main()
{
float totRegHrs, totOtHrs, totRates, totGross, totDeferd,
totFed, totState, totSSI, totNet;
float reghrs, othrs;
float avgRate, avgRegHrs, avgGross, avgFed, avgSSI, avgNet,
avgOtHrs, avgState, avgDeferd;
int numEmp;
EmpRecord emp;
EmpRecord *Eptr;
Eptr = &emp;
FILE * fp;
fp = fopen("3AReport.txt", "w");
if (fopen == NULL)
{
printf("Couldn't open output file...!");
fflush(stdin);
getchar();
exit(-1000);
}
/*....*/
printEmpData(fp, Eptr, reghrs, othrs);//3.8
return 0;
}
/*....*/
void printEmpData(FILE *fp, struct EmpRecord *e, float reghrs, float othrs)
{
fprintf(fp, "\n%-17.16s %5.2f %5.2f %7.2f %6.2f %6.2f %7.2f", e->fullname, e->rate, reghrs, e->gross, e->fedtax, e->ssitax, e->netpay);
fprintf(fp, "\n %5.2f %6.2f %6.2f \n", othrs, e->statetax, e->deferred);
return;
}
J'ai essayé une tonne de combinaisons suggérées par d'autres questions/réponses, mais aucune ne semble traiter d'une situation multilingue.
Je cherche essentiellement une solution qui me permette de continuer à utiliser fprintf tout en laissant la majeure partie du code C++.
Je ne cherche pas quelqu'un pour coder la solution pour moi, mais plutôt pour expliquer quels sont les problèmes avec cela et comment les contourner logiquement.
De plus, typedef est une exigence. Action de grâce
Ne pas 'fflush (stdin)', c'est un comportement indéfini. – ouah