2

最初に g++ でコンパイルした C++ プロジェクトがあります。今、私は Visual Studio 2010 で動作させようとしていますが、問題は書き込み用の空の出力ファイルを作成する通常のコマンドです。

#include <fstream>
using namespace std;

ofstream fout("afile.txt");
fout<<"write someting"<<endl;
fout.close();

VS2010 では動作しません (ファイルは作成されません)。ファイルが既に存在する場合でも、何も書き込まれません。

それで、VS2010 で C++ から書き込むためにファイルを開く正しい方法は何ですか?

4

4 に答える 4

4

ファイルが予想外の場所に作成されているのではないかと疑っています - 作業ディレクトリが指している場所を確認してください。これは 2012 年ですが、同じではないにしても非常に似ています... vs2010 でプロジェクトを右クリックし、プロパティを選択します。次に、デバッグを選択し、作業ディレクトリを確認します。

ここに画像の説明を入力

または、アプリをビルドし、作成したディレクトリにアプリをコピーします。次に、コマンド ラインで実行して、権限の問題かどうかを確認します。

于 2012-11-22T15:03:31.967 に答える
1

次のコードは私がうまく動作します:

#include <fstream>
using namespace std;

int main(){
    ofstream fout("afile.txt");
    fout << "write someting"<<endl;
    fout.close();
    return 0;
}

main メソッドを使用しませんでした (構文エラーが発生しなかったのは奇妙です)。このようなプロジェクトを作成するときは、それが ConsoleApplication であり、空のプロジェクトであることを確認してください (このオプションは、Win32 アプリケーション ウィザード (プロジェクトの作成に使用されるウィザード) の [追加オプション] で確認できます)。

標準 C++ は Visual Studio で動作するはずです。標準の C++ コードのみを使用していることを確認したい場合は、いつでも /Za コンパイラ オプションを使用できます ( http://msdn.microsoft.com/en-us/library/0k0w269d.aspxを参照) 。

于 2012-11-22T15:01:12.523 に答える
-1

afile.txt をソース ファイルと同じ場所に手動で追加し、プログラムを実行します。テキストがファイルに書き込まれます。ただし、プログラムを実行するときに afile.txt ファイルが開いていないことを確認してください

于 2016-06-01T08:06:54.797 に答える
-2

私は数分間私を困惑させた同じ問題を抱えていました。プロジェクト ディレクトリを調べます。そこにファイルが見つかるはずです。そうでない場合は、デバッグ モードまたはリリース モードの作業ディレクトリを指定する必要があります。MS Visual Studio では、[プロジェクト] メニューの [プロパティ] をクリックし、[構成プロパティ] の [作業ディレクトリ] フィールドの [デバッグ] タブで、プロジェクトを起動するディレクトリを指定します。

于 2014-11-01T14:51:13.917 に答える