C 是否检测空格是否按了3次?

C 是否检测空格是否按了3次?,c,whitespace,detection,getchar,C,Whitespace,Detection,Getchar,在我的程序中,我需要检测空格键是否被按下3次,然后将其替换为\n 我使用getchar来获取输入,检测一个空格是没有问题的,但是如果我输入3个空格来检查它是否无效。 非常感谢您的帮助 这是我的代码到目前为止,巫婆的工作非常好,若我只检查一个空格键,但若我输入3它将不会检测到它 if (c == ' ') { putchar('\n'); } 可以计算连续空格的数量。比如: int c; int spaces = 0; while((c = getchar()) != EOF) { if

在我的程序中,我需要检测空格键是否被按下3次,然后将其替换为\n

我使用getchar来获取输入,检测一个空格是没有问题的,但是如果我输入3个空格来检查它是否无效。 非常感谢您的帮助

这是我的代码到目前为止,巫婆的工作非常好,若我只检查一个空格键,但若我输入3它将不会检测到它

if (c == ' ')
{
putchar('\n');
}

可以计算连续空格的数量。比如:

int c;
int spaces = 0;
while((c = getchar()) != EOF)
{
    if (c == ' ')
    {
        ++spaces;
        if (spaces == 3)
        {
            putchar('\n');
            spaces = 0;
        }
    }
    else
    {
        spaces = 0;
    }
}

您需要跟踪输入的最后两个字符,而不仅仅是当前字符。一个简短的两元素队列或者类似的东西?或者仅仅是两个变量?还要注意,如果空格键被按下三次,你不会真正检测到,你只会检测到输入中的三个空格。空间可以被复制粘贴到输入中,您不知道是否有实际的空格键按下。至少标准的C++是不可能检测任何按键,它可以看到什么是作为输入。马克,请添加更多的代码,显示您的输入的阅读等。这将有助于我们帮助您。非常感谢您是helpful@Mark,请将此问题标记为已回答。谢谢