2017-02-23 36 views
0

Я не могу получить эту программу для компиляции. Я получаю ошибку при автозапуске и автоконце. То, что нет имени типа. Также я пытаюсь получить findword и findchar в этой программе для работы. Любые советы будут высоко оценены.Ошибка при создании слова, буквы, функции счетчика символов n findword, findchar

#include <iostream> 
#include <string> 
#include <stdio.h> 

using namespace std; 

int main(int argc, const char * argv[]) { 

    string allWords; 

    int lineCharacterCount = 0; 

    int maxCharacterCount = 60; 

    int charactersRemaining = 0; 

    string delimiter = " "; 

    string word; 

    string sentense; 

    int remainder = 0; 

    getline(cin, allWords); 

    auto start = 0U; 
    auto end = allWords.find(delimiter); 
    while (end != string::npos) 
    { 
     word = allWords.substr(start, end - start); 

     if (((word.length() + 1) + lineCharacterCount) < maxCharacterCount) 
     { 
      sentense.append(word); 
      sentense.append(" "); 
      lineCharacterCount += word.length() + 1; 

      start = end + delimiter.length(); 
      end = allWords.find(delimiter, start); 
     } 
     else 
     { 
      word = allWords.substr(start, end - start); 

      // Note to myself: Find how many characters are remaining to reach maxCharacterCount minus 1 for the hyphen 
      charactersRemaining = (maxCharacterCount - lineCharacterCount) - 1; 
      if ((word.length() - charactersRemaining) > 0) 
      { 
       sentense.append(word.substr(0, charactersRemaining)); 
       sentense.append("-"); 
       remainder += 1; 
      } 

      cout << sentense << endl; 
      sentense = ""; 
      lineCharacterCount = 0; 

      if (remainder) 
      { 
       sentense.append(word.substr(charactersRemaining, string::npos)); 
       sentense.append(" "); 
       lineCharacterCount += word.length() + 1; 
       remainder = 0; 
      } 

      start = end + delimiter.length(); 
      end = allWords.find(delimiter, start); 
     } 
    } 

    word = allWords.substr(start, end - start); 
    sentense.append(word); 

    cout << sentense << endl; 

    return 0; 
} 
+1

вы используете C++ 11 компилятор? –

+0

Я так считаю, я – Neil

+0

Это определенно выглядит так, как будто вы компилируете для стандарта C++ 03. С g ++ добавьте опцию '-std = C++ 11' или' -std = C++ 14', если версия, которую вы ее поддерживаете. Чтобы получить более подробную помощь, пожалуйста, включите ** соответствующую информацию **, такую ​​как ваш компилятор и версия, команду, которую вы используете сборку (и любые соответствующие переменные среды или другую конфигурацию компилятора), и диагостик, который вы цитируете дословно. –

ответ

0

установить флаги компилятора -std = C++ 11