【发布时间】:2017-10-10 14:50:48
【问题描述】:
我有一个程序使用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 上的每一行都发送回程序。任何帮助将不胜感激
【问题讨论】:
-
其实我不确定我是否完全误解了这个问题...
cin.getline是什么意思? -
@tobi303 我编辑了主要帖子,希望这能清除我想要做的事情。谢谢!
-
好的,更清楚一点。确实是我的误会。但是,代码中仍然没有
cin.getline -
@tobi303 inputString.substr(0, 5) 是主帖中提到的 cin.getline() 函数的一部分。程序读取文件的这段代码在 .read "script.text" 文件之后
-
getline是标准库中的一个函数,您的代码行如何成为它的一部分?请提供minimal reproducible example