Comment retourner 2 valeurs dans une fonction
KiraX10A
Messages postés
260
Statut
Membre
-
KiraX10A Messages postés 260 Statut Membre -
KiraX10A Messages postés 260 Statut Membre -
Bonjour,
Je code en contents/c/cintro.php3 langage C/C++ et mon problème est le suivant:
J'ai une fonction et à l'intérieur j'ai deux compteurs (compteur et compteur2) que je dois retourner. J'arrive à retourner "compteur" mais comment faire pour retourner "compteur2" ?
Merci d'avance :)
Kira
Je code en contents/c/cintro.php3 langage C/C++ et mon problème est le suivant:
J'ai une fonction et à l'intérieur j'ai deux compteurs (compteur et compteur2) que je dois retourner. J'arrive à retourner "compteur" mais comment faire pour retourner "compteur2" ?
Merci d'avance :)
Kira
A voir également:
- Comment retourner 2 valeurs dans une fonction
- Retourner ecran pc - Guide
- Comment retourner une video - Guide
- Fonction si et - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- 2 ecran pc - Guide
6 réponses
essaye ceci à la fin de ta fonction au lieu du : return compteur2;
°°°°°°°°°°°°°
return array( compteur, compteur2 );
°°°°°°°°°°°°°
et aprés tu les récuperent de cette façon :
$retour = nom_fonction();
echo "$retour[0] - $retour[1]";
qui sont respectivement compteur et compteur2
°°°°°°°°°°°°°
return array( compteur, compteur2 );
°°°°°°°°°°°°°
et aprés tu les récuperent de cette façon :
$retour = nom_fonction();
echo "$retour[0] - $retour[1]";
qui sont respectivement compteur et compteur2
normalement une fonction retourne une valeur, et en cas de plusieurs valeurs tu dois les retourner dans un tableau. si tu nous met le code de la fonction ça serais plus clair
Ha oki.
Voilà le code (un peu lourd :s ):
Voilà le code (un peu lourd :s ):
int compare(vector < structure > Tab1, vector < structure > Tab2, vector <structure> Tab3, vector <structure> Tab4, ofstream &fichier)
{
compteur = 0;
num_ligne = 0;
vector < structure >::iterator itCurrent1; // Création d'un vector de type "Colonne_struct" qui est un iterator de nom "itCurrent1".
vector < structure >::iterator itEnd1 = Tab1.end( ); // Création d'un vector de type "Colonne_struct" qui est un iterator de nom "itEnd1" initialisé à la fin d'un tableau.
vector < structure >::iterator itCurrent2; // Idem
vector < structure >::iterator itEnd2 = Tab2.end( ); // Idem
cout << endl;
fichier << " ************** FICHIER No 1 ************** " << endl << endl;
itCurrent1 = Tab1.begin( );
for ( ; itCurrent1 != itEnd1; ++itCurrent1) // Deux boucles for imbriquées permettent la comparaison;
{ // On compare chaque ligne du tableau1 à l'ensemble des
bool trouve = 0; // lignes du tableau2.
num_ligne = num_ligne++;
// Pour une ligne du tableau1, on parcour l'ensemble du tableau2
itCurrent2 = Tab2.begin( ); // Si la ligne est trouvée, on place "trouve" à true et on sort
for ( ; itCurrent2 != itEnd2; ++itCurrent2) // de la seconde boucle for.
{ // Si la ligne n'est pas trouvée, "trouve" est à "false", on incrémente un compteur
//if ( *itCurrent2 == *itCurrent1 ) // (qui sera chargé de renseigner par la suite le nombre de lignes absentes)
//{ // et on affiche la ligne qui ne se trouve pas dans le tableau2.
// trouve = true; // Enfin, lorsque la comparaison est finie, on renvoi la valeur du compteur.
// break;
//}
for(int i = 0; i < 8; ++i)
{
if (*itCurrent2 == *itCurrent1 && itCurrent2->col[i] == itCurrent1->col[i])
{
trouve = true;
break;
}
if( trouve == false )
{
compteur = compteur++;
//cout << *itCurrent1;
fichier << num_ligne << "\t" << "(Fichier 1)" << " "<< itCurrent2->col[i] << endl;
}
}
}
}
fichier << endl << endl << endl << " ************** FICHIER No 2 ************** " << endl << endl;
return compteur;
compteur2 = 0;
num_ligne = 0;
vector < structure >::iterator itCurrent3; // Création d'un vector de type "Colonne_struct" qui est un iterator de nom "itCurrent1".
vector < structure >::iterator itEnd3 = Tab3.end( ); // Création d'un vector de type "Colonne_struct" qui est un iterator de nom "itEnd1" initialisé à la fin d'un tableau.
vector < structure >::iterator itCurrent4; // Idem
vector < structure >::iterator itEnd4 = Tab4.end( ); // Idem
cout << endl;
itCurrent3 = Tab3.begin( );
for ( ; itCurrent3 != itEnd3; ++itCurrent3) // Deux boucles for imbriquées permettent la comparaison;
{ // On compare chaque ligne du tableau1 à l'ensemble des
bool trouve = 0; // lignes du tableau2.
num_ligne = num_ligne++;
// Pour une ligne du tableau1, on parcour l'ensemble du tableau2
itCurrent4 = Tab4.begin( ); // Si la ligne est trouvée, on place "trouve" à true et on sort
for ( ; itCurrent4 != itEnd4; ++itCurrent4) // de la seconde boucle for.
{
// Si la ligne n'est pas trouvée, "trouve" est à "false", on incrémente un compteur
//if ( *itCurrent2 == *itCurrent1 ) // (qui sera chargé de renseigner par la suite le nombre de lignes absentes)
//{ // et on affiche la ligne qui ne se trouve pas dans le tableau2.
// trouve = true; // Enfin, lorsque la comparaison est finie, on renvoi la valeur du compteur.
// break;
//}
for(int i = 0; i < 8; ++i)
{
if (*itCurrent3 == *itCurrent4 && itCurrent3->col[i] == itCurrent4->col[i])
{
trouve = true;
break;
}
if(trouve == false)
{
ofstream fichier( "C:\\Documents and Settings\\bastien\\Bureau\\Fichier log1.txt", ios::out | ios::app );
if(fichier.is_open() == false)
{
cout << "ERREUR LORS DE L'OUVERTURE DE Fichier log1.txt" << endl;
assert(false);
return -1;
}
compteur2 = compteur2++;
//cout << *itCurrent1;
fichier << num_ligne << "\t" << "(Fichier 2)" << " " << itCurrent3->col[i] << "\t" << itCurrent4->col[i] << endl;
}
}
}
}
return compteur2;
}
Rebonjour.
Alors merci pr l'astuce, mais j'ai qques question :D.
En C/C++ on peut écrire $retour = nom_fonction();
echo "$retour[0] - $retour[1]";
?
Ca me dit rien. Comment ca fonctionne?
Merci d'avance :)
Alors merci pr l'astuce, mais j'ai qques question :D.
En C/C++ on peut écrire $retour = nom_fonction();
echo "$retour[0] - $retour[1]";
?
Ca me dit rien. Comment ca fonctionne?
Merci d'avance :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question