2011-09-07 6 views
0

私はXcode 4を使ってC++プロジェクトをデバッグする方法を考えています。Xcode 4のC++ツールでテキストファイルリソースを開くことができませんか?

私は基本的には、ターミナルからコンパイルされたときにうまく動作する動作するC++実行可能ファイルを貼り付けてコピーしました。

しかし、私はデバッグにXcodeを使うのがいいかもしれないと思っていました。ですから、コマンドラインツールとしてXcodeに単一の.cppファイルを移行しようとしています。

プロジェクトディレクトリにあるnumbers.txt(コマンドライン引数を使用して指定します)というファイルを読み込み、そのファイル名(名前も引数として指定します)に書き出す必要があります。 )

私が実行している問題は、コマンドライン引数として提供されているファイルが開けないことです。

ifstream in; 
    ofstream out; 
    in.open(argv[1]); 
    out.open(argv[2]); 

引数が正しく渡され、正しく名前が付けられていることを確認しました。 ifstream inに `numbers.txt 'が提供されています。これは既に持っているテキストファイルを開きたいのです。

しかし、私は確認してくださいときifstreamが開いている:

if(in.is_open() == false){ 
      cerr << "Unable to open input file" << endl; 
      return 1; 
    } 

私はエラーを取得します。

これは、Xcodeがプロジェクトをどのように編成するかと関係があると思われます。

私のnumbers.txtファイルは、Xcodeプロジェクトフォルダに置かれているだけで、.cppクラスと1つの製品、実行可能ファイルが1つしかありません。

私がここで紛失していることを知っている人は誰ですか?

+0

エラー:ここ は、最終結果のスクリーンショット(宛先、サブパスとチェックボックスに注意してください)ですか?コードは正常に見えます... –

+0

私は本当にわかりません。実行可能ファイルと同じディレクトリにある.txtファイルをコマンドラインから実行したとき、コードは正常に機能しました。私はそれがXcodeと関係があると推測しています。 – wbarksdale

答えて

3

Xcodeでビルドされた実行ファイルは、プロジェクトとは別のフォルダにあります。実行可能ファイルが間違った場所で見つかる前に、絶対パスなしでファイルの名前を渡すと、それが見つからないのです。可能な解決策のいくつかは、ファイルをビルドプロセスの一部として(実行ファイルと同じディレクトリに終わるように)含めるか、ファイルを絶対パスで渡すことです。問題を解決するには他にも方法がありますが、うまくいけば、それを始めるには十分であるはずです。

+0

ビルドフェーズを追加して、必要な2つのテキストファイルをコピーしました。しかし、どこに置くべきかわからない。可能性の高いオプションは、「実行可能ファイル」、「製品ディレクトリ」、「リソース」です。サブパスも指定する必要がありますか? – wbarksdale

+0

@weezybizzle:完全修飾パス名を指定できます。また、相対的な場所に出力し、そのファイルがどこに現れてもテキストファイルをそこに置いてテスト出力を行うことができます。 – Daniel

+0

私はこれについてもっと読むと、もっと混乱しています。実行ファイルが実際にどこで終了するのかわかりません。ビルドと呼ばれるディレクトリにありますか?(ビルドの場所ではビルドと呼ばれます)、それともバンドルに入っていますか?私は失われています、どんな助けも認められるでしょう。 – wbarksdale

2

古いスレッドですが、私は今同じ問題に直面しており、解決するのは簡単です。ビルド段階でファイルをコピーするだけです。これはC++についての質問である、またはちょうどあなたのディスク上のファイルを見つけることについて..

copy item

+0

感謝のように働いた、ありがとう! – Lorenzo

関連する問題