使用for循环将命令更改为变量

时间:2017-08-18 23:40:38

标签: c++

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

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个小时了。

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

第二次编辑:采取所有变量限制。 18446744073709551615对于unsigned long long。 4294967295很长时间(不知道为什么会这样,int是一样的)。使用相关命令获取这些数字,但通过for循环获取命令等于变量。 (AKA 1或甚至&#34;一个&#34;)只要名称可以包含相同的命令,它就不重要。我有一种感觉&#34;变量&#34;这是一种不正确的短语方式,但是你要通过一个可更改的内存分配调用来存储它,你可以在for循环中使用它来增加该循环的计数器并输出

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

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

1 个答案:

答案 0 :(得分:0)

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

也许你想要这个:

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

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

你也可以这样做:

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