A voir également:
- Fonction compte sous unix
- Fonction si et - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Installer windows 10 sans compte microsoft - Guide
- Comment savoir qui regarde mon compte facebook - Guide
1 réponse
1) Si quand tu dis "appeler une fonction", la dite fonction est contenue dans un programme et appelée plusieurs fois dans ce programme, ce que tu cherches s'appelle un variable statique (en C et en C++).
2) S'il s'agit d'un script ou d'un programme, appelé par un autre programme, le plus simple (et la seule solution que je vois comme ça à froid) c'est de stocker la valeur dans un fichier que ta fonction va incrémenter.
Exemple en C++ :
1) Avec des variables statiques :
ce qui donne à l'exécution :
2) Via un fichier :
À l'exécution :
Bonne chance
2) S'il s'agit d'un script ou d'un programme, appelé par un autre programme, le plus simple (et la seule solution que je vois comme ça à froid) c'est de stocker la valeur dans un fichier que ta fonction va incrémenter.
Exemple en C++ :
1) Avec des variables statiques :
#include <iostream>
void f(){
static unsigned i = 0;
std::cout << i++ << std::endl;
}
int main(){
f();
f();
f();
f();
return 0;
}
ce qui donne à l'exécution :
0 1 2 3
2) Via un fichier :
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
int main(){
const char *filename = "compteur.txt";
std::ifstream ifs(filename);
unsigned compteur = 0;
// Lire le fichier compteur s'il existe
if(ifs){
std::string s;
if(std::getline(ifs,s)){
if((sscanf(s.c_str()," %i ",&compteur)) != 1){
std::cerr << "invalid file " << filename << std::endl;
return 2;
}
}else{
std::cerr << "invalid file " << filename << std::endl;
return 2;
}
ifs.close();
}
// Mettre à jour le fichier compteur
std::ofstream ofs(filename);
if(!ofs){
std::cerr << "can't open " << filename << std::endl;
return 1;
}
ofs << compteur + 1 << std::endl;
ofs.close();
return 0;
}
À l'exécution :
(mando@aldur) (~) $ g++ plop.cpp (mando@aldur) (~) $ cat compteur.txt cat: compteur.txt: Aucun fichier ou répertoire de ce type (mando@aldur) (~) $ ./a.out (mando@aldur) (~) $ cat compteur.txt 1 (mando@aldur) (~) $ ./a.out (mando@aldur) (~) $ cat compteur.txt 2 (mando@aldur) (~) $ ./a.out (mando@aldur) (~) $ cat compteur.txt 3
Bonne chance