8

C++ ( main.cpp )のアルゴリズムがあり、CLionを使用してコンパイルおよび実行します。アルゴリズムはテキスト ファイルから文字列を読み取りますが、誤りがあります。

data.txt を開けませんでした(ファイルが存在し、main.cppと同じフォルダーに配置されています)

どうすればそれを修正して、このファイルを CLion に「見える」ようにできますか?

4

4 に答える 4

6

またはに似たものを使用してfopenいて、 を渡すだけ"data.txt"の場合、そのファイルは実行中のプログラムの現在の作業ディレクトリ (コンパイルしたばかりのディレクトリ) にあると見なされます。

だから、どちらか

  1. fopen("/full/path/to/data.txt")のように、実際のフル パスを使用する代わりにフル パスを指定します。

  2. (好ましくありません)、data.txt を、CLion がコンパイルされたプログラムを実行するディレクトリに移動します。

(#2については、そのディレクトリを取得するハックな方法があります)

char buf[1024]; // hack, but fine for this
printf("%s\n", getcwd(buf, 1024));
于 2015-01-27T21:25:30.907 に答える
4
  1. 構成の実行/編集...
  2. アプリケーションを選択します (ウィンドウの左側にあります)。
  3. 作業ディレクトリを指定
  4. 申し込み

fopen作業ディレクトリから相対的にできるようになりました。

于 2016-06-14T14:06:03.697 に答える
2

この問題を解決する別の方法を見つけました。

@Lou Franco のソリューションは、プロジェクト構造に影響を与える可能性があります。たとえば、サーバーにコードをデプロイする場合、リソース ファイルを特定のディレクトリに移動する必要があります。

私がしているのは、WindowsでCmakeLists.txt を変更することです

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "D:\\science\\code\\English-Prediction")

CMAKE_RUNTIME_OUTPUT_DIRECTORYは CMake 変数で、CLion 作業ディレクトリの作業ディレクトリを割り当てます。

于 2015-11-08T03:23:52.993 に答える