2016-05-11 3 views
0
#include "stdafx.h" 
#include <fstream> 
#include <iostream> 

using namespace std; 

int main() 
{ 
    char ch; 
    int a = 0; 
    int e = 0; 
    int i = 0; 
    int o = 0; 
    int u = 0; 

    std::ifstream file("myfile.txt", std::ifstream::in); 

    if (file.is_open()) 
    { 
     while (file.get(ch)) 
     { 
      if (ch == 'a') 
       a++; 
      if (ch == 'e') 
       e++; 
      if (ch == 'i') 
       i++; 
      if (ch == 'o') 
       o++; 
      if (ch == 'u') 
       u++; 
     } 

     std::cout << "Repetitions of a: " << a << std::endl; 
     std::cout << "Repetitions of e: " << e << std::endl; 
     std::cout << "Repetitions of i: " << i << std::endl; 
     std::cout << "Repetitions of o: " << o << std::endl; 
     std::cout << "Repetitions of u: " << u << std::endl; 

    } 

    else std::cout << "Error in opening file" << std::endl; 

    return 0; 
} 

Visual Studio 2015を使用して、txtファイルの母音の数をカウントする簡単なC++プログラムを作成しようとしています。 このコードはデバッグモードで動作しますが、デバッグなしで起動します)それはファイルを開くことはありません。なぜそれが起こり、どのように私はそれを修正することができますか? txtファイルはプログラムの同じディレクトリにありますなぜVisual Studioは「デバッグなしで起動」モードでファイルを開きませんか?

私は完全なパスを使用すると問題はありません。 Y:\ Documents \ Visual Studio 2015 \ Projects \ stream \ stream \ myfile.txtしかし、私はそれが相対パスで動作しない理由を知りたいと思います。 myfile.txt

ありがとうございます!

+0

テキストファイルは_Debug_フォルダにありますか? –

+0

プロジェクトの設定を変更していない限り、プロジェクトファイルと同じフォルダにある必要があります。 – drescherjm

+0

MSVSでは、テキストファイルはソースファイルと同じ場所にある必要があります。あなたのテキストファイルはどこですか? – NathanOliver

答えて

0

Visual Studioは、実行方法に応じてプログラムの「作業ディレクトリ」を変更します。 Visual Studio IDEから実行すると、デフォルトでソースディレクトリが作業ディレクトリとして使用されます(これはプロジェクトプロパティで変更できます)。そうしないと、プログラムはそのプログラムが実行されたディレクトリを使用します。

安全のため、ソースディレクトリとターゲットディレクトリ(実行ファイルが作成される場所)の両方にファイルのコピーを保存して、問題が見つからないようにすることができます。

+0

@AnTその情報を反映するように編集されました。 – Xirema

+0

ターゲットディレクトリ(.exeがある)にファイルをコピーしましたが、まだ同じ問題がありました。ソースディレクトリは何ですか? .vcxprojファイルもある場所?もしそうなら、myfile.txtも既にそこにあります。 「デバッグモードなしで起動する」で作業ディレクトリを選択する方法はありますか? ありがとうございました! – Ale

+0

@Ale「ソースディレクトリ」は、.hファイルと.cppファイルが(通常)配置されている場所です。ディレクトリ構造のスクリーンショットを質問に追加したり、物事の配置方法を見たり、不一致を探すのに役立ちます。 – Xirema

関連する問題