Flesch Program c ++

时间:2013-05-09 19:56:02

标签: c++

我正在尝试编写一个程序,通过计算程序中的单词,句子和音节来计算文本文件(Flesch)的分数,而现在我遇到麻烦,因为bool函数是在a为每一个编写代码。这是我得到的: 

#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 个答案:

答案 0 :(得分: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. 您的大括号不会加起来 - 此功能永远不会从上面的代码结束。