Getline无法正常工作

时间:2016-12-24 04:50:37

标签: 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]!='\0'){
        if(a [i]=='a')
            a++; 
        i++; 
    }
    cout <<"Letter \'a\' occurs "<<a <<" times in this phrase"; 
}

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

输出

Enter a phraseLetter 'a' occurs 0 times in this phrase

任何修正或替代方案?

2 个答案:

答案 0 :(得分:1)

我多次遇到这个问题,我发现通常要解决这个问题,你只需要把它放在:

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

在getline()之前;

答案 1 :(得分:0)

getline工作正常。

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

变量ca是你想要的反击。

相关问题