Squaks
Messages postés6Date d'inscriptionmardi 12 mai 2009StatutMembreDernière intervention24 juin 2009
-
23 juin 2009 à 17:28
Squaks
Messages postés6Date d'inscriptionmardi 12 mai 2009StatutMembreDernière intervention24 juin 2009
-
24 juin 2009 à 18:46
Bonjour a tous,
Alors je commence en C++ et je voudrais savoir comment je peux faire un programme qui lit un .txt ligne par ligne et qui la supprime si elle contient plus de x fois un caractere
if (file == NULL)
{
printf("[INFO]Echec de l'ouverture de %s\n\n",argv[1]);
system("PAUSE");
return 0;
}
file_clean=fopen("Dico_cleaned.txt","w");
if (file_clean == NULL)
{
printf("[INFO]Echec de la creation de Dico_cleaned\n\n");
}
while (fgets(ligne,256,file) != NULL)
{
for ( int i=0;i<26;i++)
{
caractere = ligne[i];
for ( int j=0;j<26;j++)
{
if (caractere = ligne[j])
{
suppr = suppr+1;
}
}
if (suppr < 6 )
{
fprintf(file_clean,"%s\n",ligne);
}
}
Squaks
Messages postés6Date d'inscriptionmardi 12 mai 2009StatutMembreDernière intervention24 juin 2009 24 juin 2009 à 15:50
Effectivement sa marche mieux mais par-contre sa ecrit dans dico_cleaned dans tous les sens et n'importe comment alors que dans le fichier iniatiale c'est bien ordonné
PS:Oui les ligne font 26 caracteres
Vous n’avez pas trouvé la réponse que vous recherchez ?
if (file == NULL)
{
printf("[INFO]Echec de l'ouverture de %s\n\n",argv[1]);
system("PAUSE");
return 0;
}
file_clean=fopen("Dico_cleaned.txt","w");
if (file_clean == NULL)
{
printf("[INFO]Echec de la creation de Dico_cleaned\n\n");
}
while (fgets(ligne,256,file) != NULL)
{
write=true;
for ( int i=0;i<26;i++)
{
suppr=0;
caractere = ligne[i];
for ( int j=0;j<26;j++)
{
if (caractere==ligne[j])
{
suppr = suppr+1;
}
}
if (suppr > 6 )
{
write=false;
}
}
if (write=true)
{
fprintf(file_clean,"%s",ligne);
}
}
fclose(file);
fclose(file_clean);
system("PAUSE");
return EXIT_SUCCESS;
}
Par contre il ne detecte pas les lignes qui ont plus de 6 caractere identique