2016-12-24 8 views
0

私はビジュアルスタジオ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 

任意の修正や代替?

+0

'cin.getline(a);を置き換えてみてください。 'を' cin >> a'で置き換えます。どうすればいいのか教えてください –

+1

ファンタジーコードの代わりに実際のコードを投稿する必要があります。 'a'は' check_a() 'で2回宣言され、同じ名前の異なる型の2つの変数として表示されるので、コンパイルされません。皆さんの時間を無駄にするのではなく、実際のコードを投稿する必要があります。失敗します。 –

+0

@SamVarshavchikこれは*彼の*実際のコードです、彼は私たちになぜそれがうまくいかないかを尋ねています。それほど落胆しないでください。 –

答えて

0

getlineは完全に機能しています。

ca++;に置き換えて、正しい出力を得てください。

変数caは、対象となるカウンタです。

+0

'cout'の行にも... –

0

私はこの問題を何度もあったし、私は通常あなただけ配置する必要があり、この修正することを見出した:

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

をgetlineの前を();

関連する問題