2017-01-04 7 views
1

Я создал эту программу, и по какой-то причине Visual Studio предоставляет это «предупреждение» («неожиданные токены после директивы препроцессора - ожидается новая строка»), в то же время обнаруживая ошибки, которые кажутся чтобы ссылаться на содержимое в одной строке вниз от строки, которую компилятор утверждает, что они включены. Для момента времени ошибка Carat Error, похоже, относится только к чему-то применимому one line down. Таким образом, я считаю, что-то должно быть, пошло ужасно неправильно в заголовке программы, но я unsure.Here это код:«неожиданные токены после директивы препроцессора - ожидаемая новая строка»

//1/4/2017 

#include "stdafx.h" 
#include <iostream> 
#include <vector> 
#include <string> 
#include <ctime> 
#include <cstdlib> 


using namespace std; 

void getNewItem(); 
void displayItems(); 
void displayRand(); 
vector<string> vecItems; 

int main() 
{ 
    //declaration phase 

    int intInput; 
    string strNewItem; 


    cout << "Random Item Generator" << endl << "Written by #XXXXX" << endl << "1. Add Item" << endl << "2. Display All Items " << endl << "3. Display Random Item" << endl << "4. Quit" << endl; 
    while (intInput != 4) 
    { 
     cin >> intInput; 
     switch (intInput) 
     { 
     case 1: 
      getNewItem(); 
      break; 

     case 2: 
      displayItems(); 
      break; 

     case 3: 
      displayRand(); 
      break; 
     } 
    } 
    return 0; 
} 

void getNewItem() { 
    string strNewItem; 
    cin >> strNewItem; 
    vecItems.push_back(strNewItem); 
} 

void displayItems() { 
    for (int i = 0; i < vecItems.size(); i++) { 
     cout << vecItems.at(i) << endl; 
    } 
} 

void displayRand() { 
    int intRandIndex; 
    //random number generator 
    srand((unsigned)time(0)); 
    intRandIndex = rand() % 10; 

    cout << vecItems.at(intRandIndex) << endl; 
} 

Скриншот 1

Screenshot 1

Скриншот 2

Screenshot 2

EDIT: версия Visual Studio - это Visual Studio 2015, и я перекомпилирован и полностью запущен новые проекты безрезультатно.

+0

Образца дано не воспроизвести эту ошибку с Визуальным Studio 2015 или Visual Studio 2010. Какую версию Visual Studio вы используете? Вы уверены, что это пример, который вы хотели дать? –

+0

Я использую Visual Studio 15 и перекомпилировал программу и переделал ее с нуля только для получения той же проблемы:/ – DesPhantomes

+0

Возможно, проблема заключается в вашем предварительно скомпилированном заголовке. Мне пришлось исключить строку '#include" stdafx.h "для компиляции (у меня нет этого заголовка). –

ответ

0

проблема, как я думаю, если некоторые параметры предупреждения компилятора, который в 2015 году против по умолчанию предотвращает с помощью ООН-initialiazed переменного так инициализировать intInput перед использованием:

int intInput = 0; 

 Смежные вопросы

  • Нет связанных вопросов^_^