A voir également:
- Excel compter le nombre d'espace dans une cellule
- Espace insécable word - Guide
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Verrouiller cellule excel - Guide
5 réponses
Salut,
Oui ce serait plus simple que tu mettes ton code pour voir ce qui ne va pas.
Je pense qu'il te faut un autre entier que i pour compter le nombre d'espaces, enfin ça dépend de ton code.
Oui ce serait plus simple que tu mettes ton code pour voir ce qui ne va pas.
Je pense qu'il te faut un autre entier que i pour compter le nombre d'espaces, enfin ça dépend de ton code.
Merci de m'avoir répondu, voici mon code
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int fd = 0;
char ligne[200];
int nb_car_lus = 0;
int i = 0;
int count = 0;
fd = open ("/root/script_c/perso/test.txt",O_RDONLY);
if (fd > 0)
{
printf("Ouverture du fichier reussie \n\n");
}
do
{
nb_car_lus = read(fd,ligne,199);
i = i+1;
}
while (nb_car_lus > 0);
ligne[i]='\0';
i=0;
while (count != '\0')
{
if (ligne[count] == 20) // 20 espace en ASCII
{
i = i+1;
count = count + 1;
}
}
printf("\n\n\n Blancs : %d", i);
close(fd);
return(0);
}
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int fd = 0;
char ligne[200];
int nb_car_lus = 0;
int i = 0;
int count = 0;
fd = open ("/root/script_c/perso/test.txt",O_RDONLY);
if (fd > 0)
{
printf("Ouverture du fichier reussie \n\n");
}
do
{
nb_car_lus = read(fd,ligne,199);
i = i+1;
}
while (nb_car_lus > 0);
ligne[i]='\0';
i=0;
while (count != '\0')
{
if (ligne[count] == 20) // 20 espace en ASCII
{
i = i+1;
count = count + 1;
}
}
printf("\n\n\n Blancs : %d", i);
close(fd);
return(0);
}
leam19
Messages postés
84
Date d'inscription
jeudi 15 mars 2012
Statut
Membre
Dernière intervention
16 mars 2013
2
25 oct. 2012 à 20:58
25 oct. 2012 à 20:58
Tu fait un split, puis tu compte le nombre d'index du tableau -1
Je ne fait pas de C, mais j'espére que d'autres t'aideront ^^
Je ne fait pas de C, mais j'espére que d'autres t'aideront ^^
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
26 oct. 2012 à 14:39
26 oct. 2012 à 14:39
Pourquoi ne pas utiliser des fonctions standards ?
Comme fopen (et non open)
Comme fread (ou mieux fgets) et non read.
Ca change pas mal de chose.
Pour le code ascii, tu peux te contenter de mettre ' ' (c'est plus intelligible)
do
{
nb_car_lus = read(fd,ligne,199);
i = i+1;
}
Il y aura seulement 1 boucle. Donc i vaudra 1.
Donc, tu ne gardes que le premier caractère.
Dans un premier temps, je te conseille de tout revoir :
fopen, fgets, fclose.
Ensuite, reposte ton nouveau code (en utilisant les balises "code" à droite du bouton souligné). Et on reverra :-).
Comme fopen (et non open)
Comme fread (ou mieux fgets) et non read.
Ca change pas mal de chose.
Pour le code ascii, tu peux te contenter de mettre ' ' (c'est plus intelligible)
do
{
nb_car_lus = read(fd,ligne,199);
i = i+1;
}
Il y aura seulement 1 boucle. Donc i vaudra 1.
Donc, tu ne gardes que le premier caractère.
Dans un premier temps, je te conseille de tout revoir :
fopen, fgets, fclose.
Ensuite, reposte ton nouveau code (en utilisant les balises "code" à droite du bouton souligné). Et on reverra :-).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
26 oct. 2012 à 15:02
26 oct. 2012 à 15:02
Bonjour
En plus des remarques de fiddy...
Ton test initial était mauvais car en faisant
Tu aurais dû écrire
Maintenant que tu essayes avec le code ASCII, tu te trompes encore. Le code de l'espace c'est 20... en hexa, soit 32 en décimal. tu peux faire
En plus des remarques de fiddy...
Ton test initial était mauvais car en faisant
if (caract[i] == "")tu comparais un caractère et une chaîne (vide, de surcroît !)
Tu aurais dû écrire
if (caract[i] == ' ')
Maintenant que tu essayes avec le code ASCII, tu te trompes encore. Le code de l'espace c'est 20... en hexa, soit 32 en décimal. tu peux faire
if (caract[i] == 0x20)ou
if (caract[i] == 32);