C++ de la Difficulté à Lire un Fichier Texte
J'essaie de lire un fichier texte, mais rien n'est sorti. Je sens que C'est peut-être pas lier correctement dans mon dossier de Ressources de Visual Studio, mais si je double-cliquer sur l' - il s'ouvre correctement dans visual studio et il n'a pas rencontré de problèmes si je test pour voir si elle s'ouvre ou si elle est bonne. Le programme compile bien, mais maintenant il n'y a pas de sortie. Rien ne s'imprime à mon invite de commande. Des suggestions?
Code
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
char str[100];
ifstream test;
test.open("test.txt");
while(test.getline(str, 100, '#'))
{
cout << str << endl;
}
test.close();
return 0;
}
Fichier Texte
This is a test Textfile#Read more lines here#and here
Savez-vous si le fichier ouvre même ok? Vous devriez vérifier les valeurs de retour.
J'ai exécuté une instruction if pour voir si il is_open() et il est entré dans le conditionnel, donc je suis en supposant qu'elle l'a ouvert (retour 1 / vrai)
il viens de tester votre exemple sous linux un tout fonctionne comme prévu.
Peut-être vous avez juste besoin de mettre un point d'arrêt dans VS IDE sur le
Avez-vous tester via Visual Studio? J'ai le sentiment que c'est le problème ici, à moins que mon problème est en train de lire un tableau de caractères comme la réponse ci-dessous indiqué.
J'ai exécuté une instruction if pour voir si il is_open() et il est entré dans le conditionnel, donc je suis en supposant qu'elle l'a ouvert (retour 1 / vrai)
il viens de tester votre exemple sous linux un tout fonctionne comme prévu.
Peut-être vous avez juste besoin de mettre un point d'arrêt dans VS IDE sur le
return 0;
déclaration de voir une partie de la sortie, ou d'ajouter quelque chose comme system("PAUSE");
ou cin.get()
avant return 0;
.Avez-vous tester via Visual Studio? J'ai le sentiment que c'est le problème ici, à moins que mon problème est en train de lire un tableau de caractères comme la réponse ci-dessous indiqué.
OriginalL'auteur Howdy_McGee | 2012-10-22
Vous devez vous connecter pour publier un commentaire.
Vous essayez d'ouvrir un fichier par son nom, sans chemin d'accès, cela signifie que le fichier doit être dans le répertoire de travail en cours de votre programme.
Le problème est avec répertoire en cours lorsque vous exécutez votre programme de VS IDE. VS par défaut définit répertoire de travail courant pour runnning programme de répertoire de projet
$(ProjectDir)
. Mais votre fichier de test réside dans le répertoire des ressources. Doncopen()
fonction pourrait ne pas le trouver etgetline()
échoue immédiatement.Solution est simple - une copie de votre fichier de test de répertoire de projet. Ou de le copier dans le répertoire cible (où votre programme
.exe
fichier est créé, généralement$(ProjectDir)\Debug
ou$(ProjectDir)\Release
) et le changement de répertoire de travail réglage de VS IDE:Project->Properties->Debugging->Working Directory
, fixé à $(TargetDir). Dans ce cas, il va travailler à la fois de l'IDE et de la ligne de commande de Windows Explorer.Une autre solution possible - définir le chemin d'accès correct au fichier dans votre
open()
appel. Pour les tests et les buts de l'éducation que vous pourrait coder en dur, mais en réalité, ce n'est pas bon style de développement de logiciels.OriginalL'auteur Rost