我在哪里放置程序的文件名来读取?

时间:2013-11-10 10:46:41

标签: c++ io readfile

我有一个我想学习的C ++文件,但是我在尝试打开包含要读取的数据的文本文件时遇到了困难。我想知道我在哪里放我的文本文件。

我的代码是:

#include <fstream>
#include <cstdlib>

using namespace std;

void rFile(string argvFile);
void Init(int i, Chord& newChord);

int main(int argc, char* argv[]) {
    if (argc != 2) {
        cout << "INCORRECT SYNTAX!" << endl;
    } else {
**//I changed the this to rFile("text.txt"); but error too.**
        rFile(argv[1]);
    }

}

void rFile(string argvFile) {

    Chord newChord;

    string inLine;
    ifstream inFile;
**// I got an error trying to put the text file name after argvFile.c_str("text.txt"));**
    inFile.open(argvFile.c_str());

    if (inFile.is_open())
        while (inFile.good()) {
            getline(inFile, inLine);

            }
        } else {
        cout << "ERROR! FOUND NOT FOUND!" << endl;
    }
}

有人可以请赐教我吗?

1 个答案:

答案 0 :(得分:3)

此代码从程序参数

中读取文件名
 rFile(argv[1]);

argv 是在执行过程中传递给程序的参数数组,例如运行

 ./prog a b c

受让人

  argv[1] = "a"
  argv[2] = "b"
  argv[3] = "c"

第0个元素(argv [0])包含程序名称,因此在这种情况下

  argv[0] = "prog"

所以在您的程序中 - 一旦您将其编译为 prog ,您将通过(unix)

运行它
./prog PATH_TO_FILE

或(windows)

prog.exe PATH_TO_FILE