Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Getline不工作_C++ - Fatal编程技术网

C++ Getline不工作

C++ Getline不工作,c++,C++,我使用的是visual studio 2012,但每当我使用getline函数时,它旁边没有暂停,甚至循环也没有运行 这是我的密码: #include<iostream> #include<stdio.h> void check_a() { char a [50]; int i =0 , ca=0; cout <<"Enter a phrase"; cin.getline (a,49); while (a [i

我使用的是visual studio 2012,但每当我使用getline函数时,它旁边没有暂停,甚至循环也没有运行

这是我的密码:

#include<iostream>
#include<stdio.h>

void check_a()
{
    char a [50]; 
    int i =0 , ca=0; 
    cout <<"Enter a phrase"; 
    cin.getline (a,49); 
    while (a [i]!='\0'){
        if(a [i]=='a')
            a++; 
        i++; 
    }
    cout <<"Letter \'a\' occurs "<<a <<" times in this phrase"; 
}

int main()
{
    check_a (); 
    return 0; 
}

有任何修复或替代方案吗?

getline
工作正常

替换
a++
ca++以获得正确的输出


变量
ca
是您的预期计数器。

我多次遇到此问题,我发现通常要解决此问题,您只需输入:

cin.clear();
cin.sync();

在getline()之前

尝试替换
cin.getline(a)带有
cin>>a
。请让我知道你需要如何发布真实代码而不是幻想代码。显示的代码甚至不会编译,因为
a
check_a()
中声明了两次,作为两个不同类型的变量,具有相同的名称。你需要发布真实的代码,而不是浪费每个人的时间。失败。@SamVarshavchik这是他的真实代码,他在问我们为什么它不起作用。请不要这么泄气,这不是真正的代码。他声称这是无法正确执行的真实代码。问题是真正的代码是编译的,而这一个没有,有明显的语法错误。尝试编译所显示的代码,并重现所声明的结果。你不能。
cin.clear();
cin.sync();