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

Where do I put the filename for the program to read?

本文关键字:读取 文件名 程序 在哪里      更新时间:2023-10-16

我有一个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;
    }
}

有人可以开导我吗?

此代码从程序参数中读取文件名,

 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

或(窗口)

prog.exe PATH_TO_FILE