2013-05-09 29 views
1

我正試圖編寫一個程序,通過計算程序中的單詞,句子和音節來計算文本文件(Flesch)的分數,現在我遇到了bool函數的麻煩在每個代碼的寫入代碼後聲明。這是我得到的: Flesch Program C++

#include <iostream> 
#include <fstream> 
#include <cctype> 
using namespace std; 

int numSentences, numWords, numSyllables; //for alphabet A-Z, a-z....unexpected unqualified0id before 'int' 
int isalpha(char isWordStarting); 
bool inSentence, inWord, inSyllable;// 


inSyllable(char isSyllableStarting);{//error: expected constructor, destructor, or type conversion before ; token.... 
if (numSyllables = 'a','e','i','o','u'){//error: unqualified id before '{' token => inSyllable function 
return true;} 
    inSyllable(char isSyllableEnding);{ 
else { 
return false; 
} 

     inWord(char isWordStarting);{ 
if(numWords = isalpha(char isWordStarting)){ 
    return true;} 
    inWord(char isWordEnding);{ 
    else { 
return false; 
    } 

     inSentence(char isSentenceStarting);{ 
    if(numSentences = '.',';',':','!','?'){ 
    return true; 
    } 
    inSentence(char isSentenceEnding);{ 
    else{ 
    return false; 
    } 
int main (int argc[1], char*argv[]) { 
    char c; 
    ifstream infile; 
    infile.open(agrv[1]); 
    while (not (infile.eof());{ //start of loop 
      infile.get(c); 
      cout.put(c); 

      for(int numSentences=0; numSentences < argc; numSentences++) { //Sentences 
      cout << numSentences << ": " << argv[numSentences] << endl; 
      } 

      for(int numWords=0; numWords < argc; numWords++){ //Words 
      cout << numWords << ": " << argv[numWords] << endl; 
      } 

      for(int numSyllables=0; numSyllables < argc; numSyllables++) {//Syllalbles 
      cout << numSyllables << ": " << argv[numSyllables] << endl; 
      } 
      } 
      infile.close(); //close file 
      return 0; 
      } 

任何想法?我將註釋放在我遇到問題的旁邊。

+1

'if(numSyllables ='a','e','i','o','u')'這不符合你的想法...... – 2013-05-09 20:04:56

+0

根據你的問題,我建議通過一個或兩個基本的C++教程來更好地理解語法。谷歌的幾個點擊:http://cplusplus.com/doc/tutorial/和http://www.cprogramming.com/tutorial/c++-tutorial.html。然後嘗試一些簡單的程序,然後按照自己的方式進行。 – jerry 2013-05-09 20:19:33

回答

3

上的第一個錯誤行:)

取而代之的函數定義中刪除分號,則分號使它的嘗試函數調用後面括號這沒有任何意義 - 它混淆編譯器。

inSyllable(char isSyllableStarting);{ //This one here. 

另請注意,它應該有一個返回類型。它尋找一個構造函數,因爲你的函數定義沒有。


多個錯誤:您有更多的錯在這裏遠遠不止這些。例如,如果你的空間你當前的代碼以及在錯誤的位置,你會得到這個爛攤子:

inSyllable(char isSyllableStarting); 
{ 
    if (numSyllables = 'a','e', 'i', 'o', 'u'){ 
     return true; 
    } 
    inSyllable(char isSyllableEnding); 
    { 
     else{ 
      return false; 
     } 

所以,這裏的問題的列表:

  1. 分號不應該有在功能大括號打開前的第一行。
  2. 你的if後面跟着你的函數的遞歸調用,而不是其他錯誤的下一個。
  3. 你的大括號不加起來 - 這個函數永遠不會從上面的代碼結束。
+0

他也應該檢查他的if和else。似乎是非常錯誤的。 – stardust 2013-05-09 20:01:41

+0

是的,這裏有很多令人困惑的事情:/至少會出現下一個錯誤。 – 2013-05-09 20:02:48

+0

@名爲「非常錯誤」是相當慷慨的。 – 2013-05-09 20:05:27

相關問題