c++ - 当参数文件位于与当前目录不同的目录中时,不会生成 Ofstream 文件
问题描述
为了编译我的程序,我使用如下的书面 cmake 文件:
cmake_minimum_required(VERSION 3.3 FATAL_ERROR)
project(GARFIELD_SIMULATIONS)
#---Find packages-------------------------------------------------------
find_package(Garfield REQUIRED)
find_package(OpenMP REQUIRED)
#---Build executables-----------------------------------------------------------
add_executable(test1 test1.C)
target_link_libraries(test1 PRIVATE OpenMP::OpenMP_CXX Garfield)
add_executable(test2 test2.C)
target_link_libraries(test2 Garfield)
这编译我的程序没有任何问题。但是,当我运行我的可执行文件时,我在创建输出文件时遇到了问题。具体来说,test1.C 接受一个文件作为输入参数,并通过执行以下操作生成一个输出文件:
string filename = argv[1];
ifstream input(filename, std::ios::in);
double x;
vector<double> xs;
while (input >> x) {
xs.push_back(x);
}
ofstream output("output_of_"+filename, std::ios::out);
double y;
for (int i = 0; i < xs.size(); i++) {
y = xs.at(i) + 1;
output << y << "\t";
}
output.close();
现在,当我尝试传入一个不在我当前目录中的参数时,问题就来了。例如,如果我做这样的事情:
./test1 file1.txt
然后我会得到输出文件。但是,如果我这样做:
./test1 /some/other/directory/file1.txt
我不会得到任何输出文件。我尝试使用 find 搜索输出,但没有返回任何内容。我还是 cmake 的新手,所以如果这很明显,我深表歉意。我尝试使用谷歌,但尚未出现任何有用的信息。任何帮助是极大的赞赏。
解决方案
推荐阅读
- google-tag-manager - 为什么谷歌分析在我通过谷歌标签管理器安装后包含我的点击?
- java - 从用户注销时,ViewPager 事件给我错误
- python - 为什么使用用户定义的对象作为键时,Python 中的字典查找总是比较慢?
- node.js - 尝试在 Windows 上安装 NPM 包时遇到证书错误。我正在使用节点 v10.9.0
- javascript - 如何使用 react-native-link-preview 从 url 获取标题
- python - 禁止在类外部使用默认构造函数
- vb.net - 在 VB.NET 中读取时从文件中排除二进制数据的前 'x' 个字节
- c++ - Question about error handeling in istream
- php - 致命错误:调用未定义函数 stats_cdf_normal()
- python - 间歇性 StaleElementReferenceException