絶対パスを使用してファイルを開くとプロジェクトディレクトリに.inファイルがありますが、相対パスは機能しません。CLION C++はプロジェクトディレクトリ内のプレーンファイルを読み書きできません
directoyコンテンツ
main.cpp
CMakeLists.txt
milk2.in
CMakeLists.txt
cmake_minimum_required(VERSION 3.3)
project(project)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp)
add_executable(project ${SOURCE_FILES})
main.cppに
#include <iostream>
using namespace std;
int main() {
pair<int, int> periods[5000];
int lineCount = 0;
freopen("milk2.in", "r", stdin);
cin >> lineCount;
for (int j = 0; j < lineCount; ++j) {
cin >> periods[j].first >> periods[j].second;
}
int startNode = periods[0].first, endNode = periods[0].second, milkMax = 0, freeMax = 0;
for (int i = 1; i < lineCount; ++i) {
if (periods[i].first <= endNode) {
endNode = periods[i].second;
if ((endNode - startNode) > milkMax)
milkMax = endNode - startNode;
} else {
if ((periods[i].first - endNode) > freeMax)
freeMax = periods[i].first - endNode;
}
}
cout << milkMax << " " << freeMax << endl;
}
がコードに誤りがありませんが、tがファイルを読み込むことができます相対的な関係を持つコンテンツh。
'それは動作しますが、相対パス:
はあなたmain.cpp
ファイルで、その後など
CMakeLists.txt
ファイルを変更する必要があることを行うために、あなたの '.in'ファイルは* source *ディレクトリにありますが、* build *ディレクトリに実行可能ファイルが作成されているためです。同じ問題が[他の質問](http://stackoverflow.com/questions/31495311/clion-c-cant-read-open-txt-file-in-project-directory?rq=1)に非常によく似ていますタイトル。 – Tsyvarevこのトピックについての私の検索は、重複しているとは言われていますが、実行可能ファイルがファイルI/Oに使用するフォルダを制御する良い方法があります。私の答えはこちらをご覧ください:https://stackoverflow.com/a/48632888/165164 –