我刚开始学习文件IO
。我在我的Mac上使用一个叫做CodeRunner的程序,并且我有一个包含以下文件的文件夹:
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
文件。我是在使用错误的位置还是遗漏了什么东西?
附带问题:它可以在MacOS上运行,但在我必须使用Codeblocks的Xubuntu VMbox中它出现了“分段错误(core dumped)”这个问题。有人知道为什么吗?我在两个文件的顶部都有这个:
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;