Fichier résultat inexistant
Bonjour,
J'ai installé XcodeVersion 13.2.1 sour mon Mac et j'ai lancé un programme pour écrire des résultats dans un fichier :
la compilation est OK, l'éditeur me permet de saisir les données que je rentre au clavier. Le problème, c'est que je ne trouve pas le fichier de résultats (
Est-ce qu'il y a que chose à configurer avec XTools ?
Merci pour votre aide
P.
J'ai installé XcodeVersion 13.2.1 sour mon Mac et j'ai lancé un programme pour écrire des résultats dans un fichier :
/* fprintf example */ #include <stdio.h> int main() { FILE * pFile; int n; char name[100]; pFile = fopen("myfile.txt", "w"); for (n = 0; n < 3 ; n++) { puts("please, enter a name: "); gets(name); fprintf(pFile, "Name %d [%-10.10s]\n", n + 1, name); } fclose(pFile); return 0; }
la compilation est OK, l'éditeur me permet de saisir les données que je rentre au clavier. Le problème, c'est que je ne trouve pas le fichier de résultats (
myfile.txt) sur mon ordinateur.
Est-ce qu'il y a que chose à configurer avec XTools ?
Merci pour votre aide
P.
Configuration: Macintosh / Safari 15.2
A voir également:
- Fichier résultat inexistant
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
Merci d'utiliser les balises de code (4e bouton au dessus de la boîte dans laquelle tu tapes tes messages) et de ne pas utiliser d'abréviations.
Ton code fonctionne chez moi, mais il y a plusieurs choses qui ne vont pas :
Voici à quoi ça devrait plutôt ressembler en C :
Ensuite tu as posté dans le forum C++, mais le programme que tu proposes est plutôt du C. Si tu t'autorises le C++, tu peux utiliser
Bonne chance
Merci d'utiliser les balises de code (4e bouton au dessus de la boîte dans laquelle tu tapes tes messages) et de ne pas utiliser d'abréviations.
Ton code fonctionne chez moi, mais il y a plusieurs choses qui ne vont pas :
- tu ne contrôle pas si ton
fopen
a marché (en particulier, si ton exécutable est lancé depuis un répertoire dans lequel tu n'as pas les droits en écriture, ça ne peut pas marcher) ; - tu ne dois jamais utiliser
gets
, comme stipulé dans la documentation. Utiliser par exemplescanf
à la place, ou mieux, ce qui est suggéré dans cette discussion.
Voici à quoi ça devrait plutôt ressembler en C :
#include <stdio.h> int main(){ unsigned int n; char name[100]; const char * filename = "myfile.txt"; FILE * fp = fopen(filename, "w"); if (fp) { for (n = 0; n < 3 ; n++) { printf("please, enter a name: "); scanf("%s", name); fprintf(fp, "Name %d [%-10.10s]\n", n + 1, name); } fclose(fp); } else { fprintf(stderr, "Can't open %s", filename); return 1; } return 0; }
Ensuite tu as posté dans le forum C++, mais le programme que tu proposes est plutôt du C. Si tu t'autorises le C++, tu peux utiliser
std::ofstream,
std::cin,
std::cerret
std::stringce qui simplifiera le code. Si j'omets le formatage, voici à quoi ça ressemble :
#include <iostream> #include <fstream> #include <string> int main(){ using namespace std; const char * filename = "myfile.txt"; ofstream ofs(filename); string name; if (ofs) { for (unsigned n = 0; n < 3; n++) { cout << "please, enter a name: "; cin >> name; ofs << "Name " << n + 1 << " [" << name << "]" << endl; } } else { cerr << "Can't open " << filename << endl; return 1; } return 0; }
Bonne chance