CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] recherche dans un document CSV

LePetitJesus_
LePetitJesus_
Niveau 8
08 juin 2016 à 20:16:53

Bonjour ,

je dois faire un programme cherchant une ligne de caractere dans un fichier CSV ( un Code Postal en l'occurence)

j'ai fait ceci pour lire et afficher mon CSV

  1. include <stdio.h>
  2. include <stdlib.h>

int main(int argc, char *argv[])
{
FILE* fichier = NULL;
int caractereActuel = 0;

fichier = fopen("cities.csv", "r");

if (fichier != NULL)
{

do
{
caractereActuel = fgetc(fichier);
printf("%c", caractereActuel);
} while (caractereActuel != EOF);

fclose(fichier);
}

return 0;
}

mon but est de rechercher une ligne precise et l'afficher la dificultée etant la syntaxe du fichier :

1,"9420","Aaigem"
2,"8511","Aalbeke"
3,"9300","Aalst"
4,"3800","Aalst (Limb.)"
5,"9880","Aalter"
6,"3200","Aarschot"
7,"8700","Aarsele"
8,"8211","Aartrijke"
9,"2630","Aartselaar"
10,"4557","Abée"
11,"4280","Abolens"
12,"3930","Achel"

je dois par exemple taper 3930 et la console devra afficher la ville + l'id mais je sais pas comment faire :(

merci

LePetitJesus_
LePetitJesus_
Niveau 8
08 juin 2016 à 20:34:29

quelqu'un pourrait integrer la ligne a mon code ? j'ai du mal a visualisé sans avoir un exemple ^^' jai examen la semaine prochaine et c'est le seul exercice ou je bloque ^^'

LePetitJesus_
LePetitJesus_
Niveau 8
08 juin 2016 à 21:46:02

j'arrive pas a le faire : (

Athuro83
Athuro83
Niveau 10
08 juin 2016 à 22:25:00

Bonsoir

Il faut que tu remplaces ta ligne caractereActuel = fgetc(fichier); par le code de [Mc]zaoie, puis que tu remplaces ton print() par quelque chose comme :
if (codePostal == codeEntree) { print(%d, %s, &codePostal, ville); break; }

Bien sûr pour que le code fonctionne il faut avoir précédemment déclaré les variables codePostal, id, codeEntree (type int) et la chaîne de caractères ville

Il reste le problème de la terminaison de boucle si tu rentres un code postal non présent dans le fichier, et là par contre je suis totalement rouillé donc je ne peux pas t'aider.

LePetitJesus_
LePetitJesus_
Niveau 8
08 juin 2016 à 22:40:00

merci quand meme de votre aide ^^ je vais essayé ca et vous en dirai plus demain ^^

bonne soirée

LePetitJesus_
LePetitJesus_
Niveau 8
09 juin 2016 à 10:12:01

j'ai modifé mon code comme ceci

  1. include <stdio.h>
  2. include <stdlib.h>

int main(int argc, char *argv[])
{
FILE* fichier = NULL;

char ville[20];
int codePostal, id, codeEntree;

fichier = fopen("cities.csv", "r");

if (fichier != NULL)
{

do
{
fscanf(fichier, "%d,\"%d\",\"%s\"\n", &id, &codePostal, ville);

if (codePostal == codeEntree)
{

print(%d, %s, &codePostal, ville); :g)
break;
};

}
while (!feof(fichier));

fclose(fichier);
}

return 0;
}

mon erreur est où il y à :g) present. j'ai mal compris un truc ? ( je debute en C de base je suis en ruby,c#,JS)

LePetitJesus_
LePetitJesus_
Niveau 8
09 juin 2016 à 10:18:22

:g)C:\Users\Davy\Documents\C\Untitled1.c||In function 'main':|
C:\Users\Davy\Documents\C\Untitled1.c|23|error: expected expression before '%' token|
||=== Build finished: 1 errors, 0 warnings ===|

LePetitJesus_
LePetitJesus_
Niveau 8
09 juin 2016 à 12:30:47

le pire c'est que je le sais ... mais j'ai pas fait gaffe car je travaille sur le pc de ma copine (j ai oublié mon chargeur chez moi )

j'utilise sa version de note pad ++ et elle a changé les couleurs ca ne m'a pas fait tilt ^^'

LePetitJesus_
LePetitJesus_
Niveau 8
09 juin 2016 à 12:40:53

je n'arrive de nouveau pas a isole une partie de la chaine , je pense que c'est du au fait que tout ceci:
1,"9420","Aaigem" soit dans la meme cellule
j'ai fais un screen du dossier pour vous montrer https://image.noelshack.com/fichiers/2016/23/1465468817-2016-06-09-12-39-13-cities-excel.png

merci beaucoup ^^ sur la centaine d'exos c'est le seul qui me pose probleme :/

LePetitJesus_
LePetitJesus_
Niveau 8
09 juin 2016 à 15:00:20

je me permet un up^^

LePetitJesus_
LePetitJesus_
Niveau 8
09 juin 2016 à 20:59:03

Siouplait :3

LePetitJesus_
LePetitJesus_
Niveau 8
10 juin 2016 à 18:34:45

up [[sticker:p/1lmh]]

Tikim
Tikim
Niveau 21
10 juin 2016 à 18:52:44

Pourquoi en C au fait ? Je code en C tous les jours parce que je suis dans l'embarqué mais je comprends pas pourquoi certains persistent sur PC, pour ce genre de tâches du moins (hors drivers, kernels et autres).

godrik
godrik
Niveau 30
10 juin 2016 à 22:29:21

Le 10 juin 2016 à 18:52:44 Tikim a écrit :
Pourquoi en C au fait ? Je code en C tous les jours parce que je suis dans l'embarqué mais je comprends pas pourquoi certains persistent sur PC, pour ce genre de tâches du moins (hors drivers, kernels et autres).

Ca sent l'exo academique. C'est raisonnable pour apprendre le C parceque tu auras besoin de traiter ce genre de trucs a la con.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware