【问题标题】:Using a for loop with changing commands as a variable使用带有更改命令的 for 循环作为变量
【发布时间】:2018-01-27 17:02:03
【问题描述】:

我一直在网上和这个网站上寻找这个场景的答案,但我遇到的一切都是关于从外部文件中读取它或更改代码中的命令,但不改变它的作用.在我做任何实际操作之前,我只是在弄乱代码以刷新自己。我正在验证某些常量是否等于我指定的数字。 (我从来没有在这里发过帖子,而且我整天都在做这个,所以我没有花时间学习代码插入标签。)

string one = "CHAR_MAX"; // <<< I know this doesn't work. It's what I am
                         //     trying to do in the loop.
if (one == 127)
    cout << "Max char count: " << CHAR_MAX << ">>> Pass >>> " one;

我知道还有其他稍微繁琐的方法可以实现这一点。但我相当确定有一种方法可以做到这一点,而无需读取外部 .txt 文件,而且我花了很长时间试图弄清楚它。快把我逼疯了,我已经快 3 个小时了。

编辑: 我会更多地研究“constexpr”,但从我所看到的情况来看,我认为它可能会。我还有很多其他方法可以完成这个是的。我只是想以这种倒退的方式理解一种方式。为了理解。至于意图(除非你的意思是“意图”的其他意思),我正在寻找不同的方法来完成一个有几个可变限制常量的愚蠢程序。像 min long、max long、short、max int 等。我正在想办法将它们与数字进行比较。没有任何理由使用。这将完全没用,因为它们是预定义的。我只是想将命令(忘记它们在源代码中引用的内容)(例如 CHAR_MAX)分配给一个变量,该变量在输出结果后会随着 for 循环而变化。我必须事先在列表中定义它们,但我不知道如何。 (另外:感谢修改我的代码块以正确读取的mod。)

第二次编辑:采用所有变量限制。 18446744073709551615 为无符号长长。 4294967295 很长(不知道为什么会这样,int 是一样的)。使用相关命令获取这些数字,但通过命令等于变量的 for 循环。 (AKA 1 或什至“one”)名称无关紧要,只要它可以包含相同的命令即可。我觉得“变量”是一种不正确的表达方式,但是您可以将其存储在一个可变的内存分配调用中,您可以通过增加该循环的计数器并输出一个在 for 循环中使用

if(*command-as-variable* == *what that number is as a corresponding number*)
    cout << "Pass";
else cout << "Fail";
enter code here

根据具体情况,我将这些条款与之关联可能会失败,但如果一切正常,它不应该。就像我说的,毫无意义。只是一种不同的方式,我可以更有效地编写此代码,而不是使用 19 个不同的 cout 语句。这是如何执行我试图找出的想法。 我还没有看过 constexpr 的用途,但我现在要昏倒了。这是漫长的一天。明天看后我会编辑这个。或者如果有解释那就更好了! :)

【问题讨论】:

  • 您是否考虑过向book 学习 C++ 而不是反复试验?
  • 我做到了,我也有一个,但这太容易了。 :P 我想挑战我无聊的头脑。我要到 8 月 28 日才上课。还剩 10 天,但我已经从 4 周的假期开始疯狂了。

标签: c++


【解决方案1】:

您将文本字符串分配给字符串变量,然后将字符串变量与整数进行比较。你的编译器应该至少产生一些警告。

也许你想要这个:

constexpr int one = CHAR_MAX;
if (one == 127)
//...

CHAR_MAX 是一个预定义的常量(标识符/宏)。

你也可以这样做:

if (CHAR_MAX == 127)
{
  //...

【讨论】:

  • "也许你想要这个:..." "但是我很确定有一种方法可以做到这一点,而无需从外部读取 .txt 文件"我对意图的怀疑正在上升。不过,我不知道 OP 的实际要求是什么。
猜你喜欢
  • 2016-07-07
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 2014-06-21
  • 1970-01-01
相关资源
最近更新 更多