从外部文本文件运行行

Running lines from an external text file

本文关键字:运行 文件 文本 从外部      更新时间:2023-10-16

我有一个程序,它使用cin.getline()接收用户输入行

我有一个cin.getline(inputString,MAX_LENGTH),用户可以在其中输入有效命令的列表,例如

add -user "CoolGuy22" "John"

我解析inputString,它添加了用户等等。现在我正在尝试创建一种从外部文件运行一堆命令的方法。外部文本文件上的每一行都是不同的命令,用于测试用户输入命令。如

add -user "CoolGuy22" "John"
add -user "CoolGirl22" "Jenny"
add -delete "CoolGuy22" "John"

这是我跑步的命令。它要求用户输入。

void Display::getInput(){
SessionLog log;
StringEval eval;
cout << endl << endl << "Enter Command: ";
char input[MAX_LENGTH];
//string input;
cin.getline(input, MAX_LENGTH);
eval.parseString(input);
getInput();

我将键入.read "script.text"

这应该读取script.text文件,并从脚本中输入单独的命令,以自动化测试。

if (inputString.substr(0, 5) == ".read"){
cout << "Read from file: "" << inputString.substr(6, inputString.length()-6) << """ << endl;
ifstream inFile;
inFile.open(inputString.substr(6, inputString.length()-6));
if (!inFile) {
cerr << "Unable to open file script.txt" << endl;
//GOTTA READ THE LINES NOW
}

我成功地访问了script.txt,但现在我被卡住了。我不知道如何将script.text上的每一行都发送回程序。如有任何帮助,将不胜感激

如果您想逐行读取文件,只需执行以下操作:

std::ifstream inFile(<path>);
if (!inFile.is_open()) {
exit(1); // Handle error
}
std::string line;
while(std::getline(inFile, line)) {
std::cout << line << std::endl;
}