2016-12-24 79 views
0

我正在使用visual studio 2012,但每當使用getline函數時,它旁邊的連續循環都沒有暫停,也沒有運行。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()'中聲明瞭兩次,是兩個不同類型的變量,名稱相同。你需要發佈實際的代碼,而不是浪費每個人的時間。失敗。 –

+0

@SamVarshavchik這是他*真實的代碼,他問我們爲什麼不起作用。請不要這麼沮喪 –

回答

0

getline正在完美運作。

a++;替換爲ca++;以獲得正確的輸出。

變量ca是你的計數器。

+0

... –

0

我有這個問題多次,我發現,通常解決這個問題,你只需要提出:

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

,則對getline()之前;