2013-02-15 5 views
2

J'essaie de lire un fichier texte et d'afficher le contenu à l'écran. Le fichier est juste une liste de mots. J'ai placé le fichier .txt dans l'arborescence de mon projet mais le code ne l'ouvrira pas. Ma question est la suivante: le fichier .txt est-il au mauvais endroit? Est-ce que fopen est la fonction correcte pour faire cela? Je tourne en rond avec ça et ça semble si simple! :(Lire un fichier .txt dans VS2010

Le fichier est stocké dans le répertoire sous "ProjectName" - Source Files - Fichier.txt

Mon code à ce jour est:

int main (void) 
{ 

char word [30]; 

    FILE *fp; 

    if ((fp = fopen("sort.txt", "r")) == NULL) 
    { 
     printf("File could not be opened\n"); 
    } 
    else 
    { 
     fscanf(fp, "%s", word); 

     while (!feof(fp)) 
     { 
      fscanf(fp, "%s", word); 
     } 

     fclose (fp); 
    } 
    return 0; 
} 

Problème résolu I. recréé un fichier texte dans mon projet en cliquant avec le bouton droit de la souris sur Fichiers Source puis en choisissant Ajouter un nouvel élément et en choisissant un fichier texte sous l'option Utilitaire.J'ai alors copié mes données de fichier texte originales dans le répertoire approprié. Solution simple! Heureux débutant-codeur !!

Répondre

0

Étant donné que vous ouvrez un chemin relatif, File.txt doit être dans le même dossier que votre fichier .exe. Bien sûr, je suppose que lorsque vous avez écrit File.txt, vous vouliez dire sort.txt parce que c'est ce que votre code référence. Avec les langages gérés, vous avez la possibilité d'utiliser "Toujours copier" pour n'importe quel fichier, mais pas avec C++. Donc, pour copier un fichier spécifique dans le répertoire de sortie, vous aurez besoin d'ajouter un événement post-construction:

  • Faites un clic droit sur le projet C++ et sélectionnez Propriétés
  • Expand « Propriétés de configuration »
  • Agrandir «Construire des événements de
  • Cliquez sur 'événement post-Build'
  • Coller copy "$(ProjectDir)sort.txt" "$(OutputPath)" dans la case 'ligne de commande'
  • Cliquez sur 'Ok'

Maintenant que vous construisez, sort.txt devrait être copié au même endroit que votre exécutable. Notez que même s'il semble que le sort.txt se trouve dans un dossier 'Fichiers sources', ce n'est vraiment pas le cas (du moins par défaut).

+0

Merci Andorbal, oui je voulais dire sort.txt! Vous et John T vous suggérons la même solution, ce qui est une bonne nouvelle. Les mauvaises nouvelles sont que je ne peux pas comprendre comment le faire! Lorsque je clique avec le bouton droit sur le fichier et que je choisis les propriétés, je n'ai aucune option pour la copie. Tout ce que je vois est une merveille de configuration. Désolé d'être un imbécile mais je suis un débutant à cela! – FE21

+0

Avez-vous un clic droit sur Visual Studio? Quelles configurations voyez-vous? – Andorbal

+0

Oui via VS. Il montre les propriétés de configuration générales et dit que le fichier n'est pas exclu de la construction et que le type d'élément ne participe pas à la construction ... – FE21

0

Votre code sera compilé dans le dossier bin de votre solution. Le fichier open recherche le fichier au même endroit que le fichier .exe, dans le dossier bin. Si vous cliquez sur le fichier dans le dossier Solution, faites un clic droit et choisissez Propriétés, puis définissez l'option "Copier dans le répertoire de sortie" sur "Toujours copier", VS copiera ce fichier au même endroit que l'exe.