所以我剛剛開始學習fileIO
。我一直在用我的Mac上叫CodeRunner計劃,我有一個包含文件夾:C++基本fileIO位置
validsudoku.cpp, validsudoku, sudokugood0.txt
我寫的代碼的開頭是:
int main(int argc, char const *argv[]){
//string filetoopen;
ifstream sudokutxtfile;
string txtline;
string sudokubox[9];
//bool goodsudoku = true;
//int i, j, row, column;
/*
if (argc == 2)
filetoopen = argv[1];
else
filetoopen = "sudokuboard.txt";
*/
//read in file, save to array, close file
sudokutxtfile.open("sudokugood0.txt");
while (getline(sudokutxtfile,txtline))
{
sudokubox[row] = txtline;
row++;
}
sudokutxtfile.close();
現在來測試這個我只是將文件打開爲"sudokugood0.txt"
,但是一旦我得到這個工作,我會將其更改爲我的'filetoopen'
變量,以便我可以終端輸入文件名。
現在到我的問題: 當我運行在CodeRunner它正常運行.cpp
看到.txt
文件並處理它,但是當我把可執行文件和.txt
文件在我的bin文件夾,並嘗試從運行終端它看不到.txt
文件。我是否使用了錯誤的位置或者是否錯過了其他的東西?
方面的問題:它運行在OSX中,但在我的Xubuntu使用代碼塊的Xboxuntu,我需要用於類我得到'分段錯誤(核心轉儲)'任何人都知道爲什麼?我有這個在我的文件的開頭兩個:
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
非絕對文件名相對於當前工作目錄而不是可執行文件。如果您在運行程序時不在'bin'目錄中,那麼它將無法工作。 – user657267
哦,猜我應該嘗試過; /謝謝。有沒有簡單的方法可以讓它在任何地方都能工作? – Austin