c++ - 如何从 cin 读取直到它为空?
问题描述
我正在尝试从通过 cin 传入的文件中读取成对的行。我需要阅读直到文件为空。如果一对中的一行是空的,我需要将该行保存为“”。如果两行都是空的,那么都需要保存并处理为“”。
我正在使用 getline 读取其中的行,并使用一个 while 循环继续进行,直到两行都为空。但是,我需要它继续直到文件为空,因为有可能 2 个空行后面跟着许多填充行。
这就是我现在的样子:
getline(cin, str1); getline(cin, str2);
while (str1 == "" | str1 != "") {
....
str1 = ""; str2 = "";
getline(cin, str1); getline(cin, str2);
}
解决方案
如果文件连续包含两个换行符,这将不起作用。您可以使用它cin.eof()
来检查何时到达文件末尾。如果它返回 1,那么您试图读取文件末尾之外的内容。
推荐阅读
- javascript - JavaScript 通过正向后向拆分字符串
- javascript - Javascript 加密函数中的 3DES 十六进制密钥
- python - 如何在 python 中使用带有 python 函数的 linux 命令 (sys.argv)
- python - 通过 MySQL DATE_FORMAT 或 DateTime.strftime 的 DateTime 字符串
- javascript - 如何单独选择 <li> 然后使用模数选择奇数
- amazon-redshift - Redshift 中的满载 - DROP 与 TRUNCATE
- blogdown - 锂主题网站的类别和标签
- spring-boot - Spring Boot 在不使用 HttpSecurity 的情况下访问 OAuth2 保护的资源?
- vba - 如何通过电子邮件将保管箱应用程序文件路径作为可点击的超链接?
- php - 有没有办法解决这个 Sprintf 问题