不理解代码到连续数字之间的空格

我不知道

当我解决一个问题时,指出给定任何正整数,我需要设计一个程序,以便在 2 个连续数字之间创建一个空格。2小时无济于事,我决定在线谷歌以获得一些提示。我获得了以下代码,它运行良好。但是,我不明白代码是如何工作的,尤其是 if。如果输入是 ,我看不到条件是如何满足的12345

int main()
{
    char b; //stores the digit
    cin >> b; //get single character from user input
    while (b != '\0') //while not at null terminator from user pressing enter
    {
        if (b >= '0' && b <= '9') //if entered character is a digit
        {
            cout << b << " "; //print character with a space
        }
         cin >> b; //get next character to check if it is null terminator or another digit
    }
}
阿洛伊斯基督徒

当用户键入任何内容时,程序会将其存储在缓冲区中(将缓冲区视为计算机可以访问的字符串)。

当程序到达 时cin >> b;,它检查缓冲区。由于用户尚未输入任何内容,因此缓冲区为空。所以程序等待用户输入一些东西。用户键入12345[enter]. 这是放在缓冲区中,cin 使用缓冲区来填充cin >> b;

这是做什么的?b是一个字符,一个单一的 ASCII 字符。所以b需要一个字符,并cin提供缓冲区中的第一个字符,这里是1. (留2345[enter]在缓冲区中)。

然后程序评估条件(b >= '0' && b <= '9')这是看到,这里重要的'1''9'不是int,他们是人物呢!所以程序会比较这些字符的数值,结果所有的数字字符都是按顺序排列的,中间没有其他字符。因此,如果b包含数字字符,则条件为真,因此我们可以b使用以下空格进行打印然后程序将要求缓冲区中的下一个字符,'2'在我们的示例中。所以b只会一个一个检查字符,而不是一次检查所有条目!

程序如何停止?正如评论中所解释的,while 循环在 时结束b= '\0''\0'是一个特殊字符,一个空终止符,用于字符串的结尾。所以这个程序在 while 循环到达用户输入的末尾时结束。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server 2012 Express不理解俄语字母

来自分类Dev

ExtJS我不理解这些代理生成的uri

来自分类Dev

htaccess重写?p =(我不理解代码)

来自分类Dev

我在您好的Android书中碰到了此代码段,但不理解

来自分类Dev

Azure Web Project上的无点不理解&:extend

来自分类Dev

Scala Maven Builder不理解准引用

来自分类Dev

C ++我不理解我的异常what()行为

来自分类Dev

www和传递给jquery的非www不理解

来自分类Dev

命令'描述不理解或不适用

来自分类Dev

为什么不理解这种通用成员约束

来自分类Dev

我不理解这些单元测试中的差异

来自分类Dev

我不理解python中的sum(iterable [,start])

来自分类Dev

通过通行密钥验证时,我不理解此代码中的错误

来自分类Dev

我在您好的Android书中碰到了此代码段,但不理解

来自分类Dev

在旧项目中工作并找到我不理解的代码

来自分类Dev

Google可视化表不理解我的代码

来自分类Dev

Math.Sqrt中的Math.Pow-我不理解此代码

来自分类Dev

不理解python中的列表理解

来自分类Dev

代码分析不理解_In_opt_参数注释?

来自分类Dev

Java不理解这段代码的逻辑

来自分类Dev

java数组反向不理解逻辑

来自分类Dev

Flow 不理解 proptypes

来自分类Dev

我不理解 phpunit 函数

来自分类Dev

多态不理解

来自分类Dev

不理解异步等待概念

来自分类Dev

不理解这个robots.txt

来自分类Dev

不理解语句的行

来自分类Dev

不理解我的方法的布尔逻辑

来自分类Dev

不理解 dialogbox 和 createdialog 之间的不同行为