1

リソースフォルダに画像「padimage.png」を追加し、設定add to targetしてmake copy if needed確認しました。次に、私のc ++コードには、ファイルに到達できるかどうかを確認するための次のコードがあります

std::ifstream my_file("padimage.png");
if (my_file.good())
{
    std::cout << "could read file \n";
} else {
    std::cout << "could not read file \n";
}

これは失敗します。つまり、ファイルにアクセスできません。"resources/padimage.png"デバッグビルドフォルダーをチェックインし、イメージはリソースフォルダーの下にあります。また、 ||のようなファイルへの代替パスも試しました。Resources/padimage.png|| ../Resources/padimage.pngなどなど。

私はまだc++にかなり慣れていないので、ファイルを見つけることがどのように想定されているのか、またはファイルがどのパスを検索するのかがよくわかりません。また、これは非常に簡単な問題だと確信していますが、どういうわけか解決できません。

すべての助けは大歓迎です。

4

2 に答える 2

2

あなた自身の正気のために、何よりもまず次のことをしてください。

char wd[1024];
std::cout << getcwd(wd, sizeof(wd)) << std::endl;

あなたは自分がどこにいるのか、そしてなぜあなたがあなたのファイルを開くことができないのかということに驚くかもしれません。IDEから実行する場合、Xcodeの[製品/編集スキーム...]領域で作業ディレクトリの場所を指定できます(他の場所の中でも)。

于 2012-09-30T09:06:25.053 に答える
1

WhozCraigからの提案のおかげで、プロジェクトのルートを使用し、次のようにアプリケーションの横にスタンドアロンファイルを作成することで、それを機能させることができました。

./padimage.png

ただし、これは理想的ではありません。これは、プロジェクト外のリソースがあることを意味します。

しかし、試行錯誤の末、パッケージ名に.appを使用して、プログラムパッケージの内容に移動することができました。

./ProjectName.app/Contents/Resources/padimage.png 
于 2012-09-30T09:55:00.433 に答える