如何以包含空格的字符串形式获取输入
How to get input as a string which contain spaces?
我正在尝试制作一个将执行输入命令的程序。我试过:
const char* command = "echo Hello, World!";
system(command);
这工作正常。但我想这样做,以便用户必须键入命令。这就是问题所在。我试过了:
const char* command;
cin >> command;
system(command.c_str());
这也很好用,但仅适用于像 cls
这样的单字命令.但是如果我尝试输入像 color a
这样的命令,程序会将我的输入数据保存为两个单独的命令并执行color
,接下来它会尝试执行a
,显然输出是:'a' is not recognized as an internal or external command, operable program or batch file.
那么如何将输入数据保存为包含空格的单个字符串呢?
您遇到的问题是cin
标记空格上的输入。如果要获取包括非行结束空格在内的整行输入,则应使用 std::getline()
。
我相信
你正在寻找std::getline()
- 这将处理所有输入,直到指定的分隔符,默认为 n
:
std::string line;
if (std::getline(std::cin, line)) {
...
}
std::getline(std::cin, command);
相关文章:
- 如何从用户那里获取输入并将其存储在向量中?
- 代码在执行之前终止,并且没有从用户那里获取输入
- 从用户获取输入/输出
- TFLite 隔离错误,通过获取C++输入和输出
- 如何使 std::istream 从键盘获取输入(如 std::cin)?
- 使用 qt 或 c++ 从桌面获取输入和输出
- 您如何在C++中不断获取输入?
- 从源代码本身C++获取输入
- 函数,从问题中获取输入,并在主函数中使用该输入
- 当我们声明 cin 为 int 并从 cin 中获取输入并在 cout 中打印 cin 时会发生什么?
- 如何在 std::map 中从 std::vector of std::p air 中获取输入?
- 有没有办法将 getline() 与外部文本文件一起使用,然后重新获得 cin 的控制权以从控制台获取输入?
- 从用户获取输入
- 我需要编写一个代码,从用户那里获取输入(句子)并停止在@处
- C 程序在获取输入[控制台应用程序]时跳过行
- 我在C++从函数中的用户获取输入、添加到数组和打印该数组时遇到问题
- 从用户那里获取输入,直到他输入一个数字
- 如何使用数组获取输入,并将其存储在record.h类的主类中的变量中
- getline 语句未获取输入
- 用户定义的功能用于竞争编程中,以获取输入