c++ - 我在哪里放置程序读取的文件名?

标签 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;
    }
}

有哪位好心人能赐教吗?

最佳答案

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

 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

或( window )

prog.exe PATH_TO_FILE

关于c++ - 我在哪里放置程序读取的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19888799/

相关文章:

c++ - C++中任意长度字符串的字符串替换

scala - 将元素从队列中取出时写入文件 : Scala fs2 Stream

android - 如何逐行读取文件

java - 使用JAVA方法读取大文本文件

ios - 如何在 Array iOS Swift 中使用 txt 文件

c++ - 如何使用_mm_extract_epi8函数?

c++ - 客户愤怒,与未知的 DLL 依赖作斗争

c++ - 获取运行文件名:argv[0] vs boost::filesystem::current_path()

c - 对于 C,Linux 头文件 <sys/io.h> I/O 端口的 Windows 头文件版本是什么

haskell - Haskell 是用什么语言编写的?