【问题标题】:How would i be able to read this file in c++ [closed]我如何能够在 C++ 中读取这个文件 [关闭]
【发布时间】:2020-04-06 16:47:31
【问题描述】:

所以我试图读入这个文件,但我遇到了麻烦,因为我必须将它们读入一个数组。

CONVERT  00000000
NOT      00000000
AND      00001111  11110000
OR       00001111  11110000
CONVERT  11111111
IR       11111111  00000000
NOT      11001100
LSHIFT   11001101  3
CONVERT  01011101
AND      10111011  00111000
LSHIFT   11001101  8
OR       10000001  10011001
CONVURT  10101010
LSHIFT   11111111  1

所以我想阅读我为其创建枚举列表的命令,如果不显示错误消息,则基本上检查哪些是真正的命令。但是我在读取文件时遇到了麻烦,尤其是二进制数?在此文件夹中收集信息的最佳方法是什么?我给出的唯一错误是 11db,但我确定这只是一个小错误,它消失了。

[代码] https://pastebin.com/6gaSnvEr

【问题讨论】:

  • 你尝试过一些实现吗?你有密码吗?
  • 将每一行读入一个字符串。将每个字符串放入stringstream,然后尝试从字符串流中读取 3 个字符串。检查每个读取是否成功。如果只有 2 个成功,那么您知道没有第三个值。您可以使用三个字符串创建一个简单的struct,例如struct operation { std::string command {}, arg1 {}, arg2 {}; }; 并创建一个 std::vector
  • 我建议将二进制数字作为字符串读取。
  • 您可以将所有有效的命令名称放入std::vectorstd::set。在容器中搜索输入分机。如果未找到输入文本,则说明您的命令无效。
  • 把代码,你的minimal reproducible example,放在问题中。不要链接到外部网站。不是每个人都能读到,外部网站可能会消失,然后这个问题对于来这里寻求类似帮助的其他人来说毫无用处。请注意,您应该从最小示例中删除未使用的变量和函数。无需在示例中乱扔未使用的东西。这只会让帮助变得更加困难。

标签: c++ arrays iostream


【解决方案1】:

我认为你可以逐行阅读,并用空格分隔行' '

所以你会得到每个部分作为一个字符串,你可以解析或检查它。

还请分享您的代码和您遇到的错误,以便您获得更好的帮助。

【讨论】: