Bonjour,
J'ai un programme qui calcule les nombres premier jusqu’à une valeur X (et avec un nombre de thread entré par l'utilisateur), le programme parcourt et teste chaque nombre si un nombre et premier il l'écrit dans un fichier.
Le souci est que je me retrouve des fois avec plusieurs nombre sur la même ligne.
Exemple: thread1 calcul de 0 à 10, thread2 11 à 20, et j'aurais sur une ligne 213 (le 2 du thread1 et le 13 du thread2)
Je pense que cela est du au fait que plusieurs threads écrivent en même temps dans le fichier.
Voici le code de la partie d'écriture:
J'ai aussi essayé en castant mes int en string et en leur rajoutant \n à la fin mais toujours le même problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 while(n<(localDonnees->tabVal[i]) && estPremier) { if((localDonnees->tabVal[i])%n == 0) estPremier=false; n++; } if(estPremier) { filestream << localDonnees->tabVal[i] << "\n"; //Ecriture des premiers dans un fichier }
Avez-vous une solutions pour bien les écrires les uns à la suite des autres ?
(Et accessoirement j'aimerai bien que ce soit écrit dans l'ordre croissant, et pas "random" en fonction des threads)
Merci
Partager