【发布时间】:2020-01-19 18:20:12
【问题描述】:
我有一个家庭作业,我需要创建一个过滤器来删除 cin 开头和结尾处的空行。显然,开始很容易,但我在结束时被难住了。我想使用动态数组,但这是不允许的......
这是练习文本:
在本练习中,开发一个过滤器,用于删除存在于 cin 的开头和 cin 的结尾。如果一行不为空 至少包含一个非空白字符。如果空行包含 空白字符,然后在写入时可以忽略这些字符 该空行到标准输出流。
注意事项:我们尚未涵盖大小未定的数组,因此您 不能将行存储在数组中,并且您不应该采用 Perl 方法,你首先读入完整文件,然后处理 你有什么。使用 std::string 变量是可以的,但该变量 从标准输入读取的行数不得超过一行。
我完全不知道你怎么能知道它最后是一个空白行而不知道还有什么输入。如果有任何帮助或提示可以为我指明正确的方向,我将不胜感激。
我还有第二个较小的问题。它说的是文件,但这是否意味着它只需要使用输入文件?截至目前,我只能使其适用于手动输入(以某些特殊字符组合结束输入)或仅扫描新行(仅适用于文件)。有没有办法在这两种情况下以相同的方式结束扫描? (我只是在使用while循环atm)
当我们谈到它时,我对措辞有点困惑。是否应该打印仅包含空白字符的行,或者将其视为空白行并跳过?
提前致谢!
【问题讨论】:
-
请在代码中提供您目前所做的工作。
-
@TedLyngmo 我认为这里没有必要。问题更多的是算法而不是代码。
-
那么我猜它应该被标记为与语言无关而不是 C++?
-
@TedLyngmo 同时,它与流等 C++ 特性相关联。
-
现在,在我见过的大多数文档中,即使
FILE*也被称为流。 :-)