C++:对一个空输入使用react与空输入文件

标签 c++ input

我在这方面还很陌生,所以这可能是非常简单的事情,我也可能会在词汇方面失败,但无论如何我都会问,因为我自己想不通。

我正在制作一个程序,它要求不同的命令来更改某些坐标,如果您给出一个空命令,它只会要求一个新命令。问题是如果你给程序一个输入文件来读取命令 (像这样: ./myprogram < 输入文件 ) 那个文件是空的,它以循环结束并无休止地要求一个新命令。当没有更多输入可读时,它应该能够退出程序。但是它怎么能有所不同,因为它不知道命令是从文件中给出还是一次一个?或者有什么办法让它知道吗?毕竟,如果一次一个地手动给它们,一个空命令并不意味着不会有更多的命令。我希望这听起来不会太傻...

最佳答案

我不完全确定“命令”对您来说是什么,但听起来好像您正在阅读单独的行并且您想排除空(或拼写错误)的行。一个简单的方法是读取行,但首先跳过前导空格,直到没有更多行:

for (std::string line; std::getline(in >> std::ws, line); ) {
    process(line)
}

表达式 in >> std::ws 跳过所有前导空格,即所有空格、换行符、制表符等。完成后,std::getline() 只读取一行内容并将其放入。如果在跳过前导空格后没有任何数据,std::getline() 将失败,因为已到达输入行。如果 line 需要以某种方式解码,您可以将其放入 std::istringstream 并从那里解码。

关于C++:对一个空输入使用react与空输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9252409/

相关文章:

javascript - JQuery-输入值没有改变?

c++ - STL vector 是 realloc 的更好版本吗?

c++ - 从文件中取出两个十六进制字符并存储为具有相关十六进制值的字符

c++ - 错误 - 按频率对数组元素排序

c++ - 在 C++ 中嵌入 Guile 的问题

javascript - 如何在不上传的情况下访问图像并将其显示在 IMG 标签中

c++ - 通过常量值传递 vector 与通过常量引用传递 vector

javascript - Dart HTML - 输入范围 onchange 无需释放鼠标按钮

angular - 通过 ComponentFactoryResolver 创建组件时更改检测不起作用

input - golang接受带空格的输入