2017-02-09 151 views
0

我讀到的文件中有字符串「hello」。 沒有錯誤,程序說「你有135197296 E」,這顯然是錯誤的。我被困在這裏。我是C++新手,看起來這將是一個有趣而簡單的程序......我錯了。C++計數器不能正常工作

我不知道它是否重要,但完成的程序應該能夠打開用戶提供的文件,讀取文件,並將字母的頻率放到單獨的文件中。很顯然,我還沒有得到到那一步,我只要求幫助該位:)

int main() { 
    string filenamein, filenameout; 
    char character; 
    ifstream fileC; 
    int tletter, eletter; 

    cout << "which file do you want to open?"; 
    cin >> filenamein; 

    fileC.open(filenamein.c_str()); 
    if (fileC) 
    { 
     while (fileC) 
     { 
      fileC.get(character); 
      char e, E; 
      if (character == 'e'|| character == 'E') 
      { 
       eletter++; 
      } 
     } 
    } 

    cout<< "You have " << eletter <<" E's"; 
    fileC.close(); 

    return 0; 
} 
+1

您無法將您的計數器初始化爲0。 –

回答

0

在C++中,原始變量如int不會被初始化,除非你明確地對它們進行初始化。這通常是效率低下的,因爲有時候你不知道變量在聲明時想要假設的第一個值,所以將其初始化爲例如0將是一個冗餘寫入操作。

因此,如果你想讓你的eletter0開始,你必須這樣做。

int eletter = 0; 

這樣你就從0算起。如果你沒有初始化它,那麼當你分配內存的時候,它的初始值將是任何垃圾數據在你的計算機內存的那個位置上的數據量,在這種情況下,它大約是1.35億。