bonjour, je suis actuellement en train de coder un programme qui lit un fichier du coup l'ordinateur a besoin demander à l'utilisateur le nom du fichier à ouvrir mais lorsque l'utilisateur tape en console le nom du fichier, voici ce qu'il se passe:
la console me dit: (// nom du fichier) n’est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.
du coup je ne peux pas ouvrir mon fichier vu que fopen ne saura pas le nom du fichier.
Voici une capture d'écran de ce qu'il se passe( ne prenez en compte que le main.c, j'effacerai les autres fichiers):
Si quelqu'un sait comment régler le problème, je le remercie d'avance.
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: cpp;">Votre code ici</pre>.
Je n'ai écrit aucun code donc je ne pense pas avoir besoin de colorer quoi que ce soit.
A moins que c'est le mot fopen qui pose problème mais je ne pense pas que le fait de ne pas mettre ce mot en couleur va changer quoi que ce soit (c'est pas parce que je n'ai pas mis ce mot en couleur que les autres utilisateurs ne sauront pas de quoi je parle)
Le message juste en haut est juste une réponse à AbcAbc6 pour lui dire que je n'ai pas écrit de texte où il y'a du code(donc je n'ai pas besoin d'utilliser le </> afin de colorer un quelconque texte), le seul code que j'ai envoyé sur le texte était dans une capture d'ecran
Bref, il te demande de ne pas mettre de capture d'écran et d'utiliser le bouton " </> " pour insérer du code, c'est plus facile après pour t'aider, comme ça on peut copier coller (et tout le tsointsoin).
Sinon, pour ce qui est du code : j'ai l'impression que tu sors de ton programme et que quand tu écris "test.txt", ton programme n'est plus lancé, donc tu cherche à effectuer la commande "Test.txt" qui n'existe pas. Pourquoi "FichierALire" c'est un char et pas un tableau de char? Tu essaies de rentrer une chaîne de caractère dans un unique caractère. Il manque aussi un ";" à ta ligne 8
- Edité par KirbXCoucou 5 août 2019 à 8:26:20
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
svp j'ai besoin d'aide pour mon devoir sur le langue c
voici le devoir:
Il nous faudrait le numéro de la carte et le code qui est derrière.
Sinon, en réalité, ce dont tu as besoin , c'est de faire toi-même le travail, qui sert à acquérir un savoir faire. Récupérer une solution toute faite et "la comprendre", ça ne marche pas.
Piège : penser qu'il peut y avoir des températures negatives
pour un chaudière la température ne peut pas être négative et j'ai essayer de faire ca fait maintenant deux semaine c'est pour cela que je suis venu sur ce forum pour demander de l'aide
merci a vous
Fais ton propre sujet et ne viens pas polluer celui de quelqu'un d'autre...
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. » D. Mendeleïev
Bonjour, c'est encore moi et même après avoir corrigé les parties où je m'était trompé(voir le message de KirbXCoucou, un peu plus haut), le programme ne marche pas.Je remercie d'avance les personnes qui répondrons
voici mon programme:
#include <stdio.h>
#include <stdlib.h>
#define TAILLEMAX 1000
int main(int argc, char *argv[])
{
int choix = 0;
char chaine[TAILLEMAX] = "";
FILE *fichier = NULL;
printf("1.Lire un fichier\n2.Ecrire dans un fichier\n3.Creer un fichier\n\nVotre choix ?");
scanf("%d",&choix);
if (choix == 1)
{
char fichierALire[100] = "";
printf("Quel fichier voulez-vous lire ?\n");
scanf("%s",&fichierALire);
fichier = fopen(fichierALire,"r");
if (fichier != NULL)
{
fgets(chaine,TAILLEMAX,fichier);
printf("%s\n",chaine);
fclose(fichier);
}
else
{
printf("Le fichier ne s'est pas ouvert");
}
}
return 0;
}
En fait, je veux que l'utilisateur entre le nom du fichier qu'il veut lire en console afin que mon programme l'ouvre mais ça ne marche malheureusement pas, peut importe ce que j'écrit, le else se lance mais le if quand à lui ne se lance pas. j'ai pourtant écrit le nom du fichier de différentes manières. Voici ce que m'affiche la console:
Je n'y arrive pas mais pour l'instant, je vais faire la partie qui écrit dans un fichier test.txt et après je créerai un fichier dans lequel j'essayerai de trouver une fonction qui permet de récupérer un fichier entré par l'utilisateur en console pour l'ouvrir
Dans ta ligne de commande pour gcc, il te manque les options -Wall -Wextra ---- mais ce n'est pas une raison pour ne pas lire et comprendre ce qu'on t'écrit.
Avec ces flags, tu aurais eu la warning
---.c:19:13: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'char (*)[100]' [-Wformat=]
scanf("%s",&fichierALire);
Ça t'éclaire ?
- Edité par edgarjacobs 6 août 2019 à 16:26:04
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Merci pour vos réponses mais edgarjacobs, je ne comprend pas toutes les erreurs que m'affiche le compilateur , aurais- tu un site qui explique toutes les phrases d'erreur et les mots clés à utiliser dans le compilateur(cls,cd,gcc,etc...) à me proposer mais sinon je pense que ça viendra avec l'expérience.
PS: Ça fait que 2 mois que j'apprend à coder, savez en combien de temps de pratique est-ce qu'on devient à peu près à l'aise avec le codage ?
Il faut voir dans l'autre sens, l'expérience elle viendra quand tu auras pris l'habitude de lire et comprendre les messages d'erreur.
Pour être à l'aise, un maçon, un plombier, un charpentier, un cuisinier apprend son boulot pendant quelques années. Programmer, ça prend un certain temps aussi.
A defaut de comprendre TOUTES les erreurs, quel est le premier mot que tu ne comprends pas dans le message de la ligne 19 ?
Est-ce que tu avais essayé la suggestion de michelbillaud :
printf("Le fichier %s ne s'est pas ouvert\n",
fichierALire);
En faisant ça, ça ne résout pas l'erreur, mais ça permet normalement de la comprendre.
Je trouve que corriger les erreurs d'un programme, c'est comme une enquête : il faut chercher des pistes, faire des hypothèses, etc. Une bonne méthode, c'est d'afficher les variables à des moments clés (par exemple juste après un 'scanf'). Là, avec cette suggestion, tu dois avancer : tu dois comprendre que le 'scanf' n'a pas fait ce que tu croyais qu'il ferait, et la nouvelle question est alors : pourquoi le 'scanf' n'a pas fait ce que je croyais ? Il suffit alors de l'examiner de plus près...
En règle générale, quand on fait lire des données, il est de bon goût - pendant la phase de mise au point du programme - de faire afficher ce qui a été lu, pour avoir un moyen de vérifier que ça c'est bien passé.
Parce que si les données sont mal lues, il y a peu de chances que le traitement des données donne un résultat satisfaisant.
probleme ouverture de fichier
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
« Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
D. Mendeleïev
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent