2013-09-03 6 views
-2

Я не могу понять, почему он продолжает говорить ожидаемый `; ' раньше «keep_window_open» только в строке 28, пожалуйста, помогитеошибка, ожидаемая `; ' до

#include<cmath> 
#include<vector> 
#include<algorithm> 
#include<iostream> 
#include<string> 
using namespace std; 
inline void keep_window_open(){char ch;cin>>ch;} 


int main() 

{ 
cout<<"Please enter your first name(followed by 'enter'):\n"; 
string first_name; 
cin>>first_name; 
cout<<"hello,"<<first_name<<"!\n"; 
keep_window_open(); 
return 0; 
cout<<"please enter last name:\n"; 
string Last_name; 
cin>> Last_name; 
cout<<"hello,"<<first_name<<Last_name<<"!\n" 
// this is the only keep_window_open() function that gives me the problem 
keep_window_open(); 
return 0; 
} 
+4

'cout <<" привет, "<< first_name << Last_name <<"! \ N "' отсутствует точка с запятой в конце! – sgarizvi

+3

Снова прочитайте сообщение об ошибке и посмотрите, что он пытается вам сказать. –

+3

Если ошибка говорит о том, что перед чем-то ожидается ';', возможно, вы могли бы проверить, не пропадет ли перед этим (;) в предыдущей непустой строке перед этим запрос ;;) – Angew

ответ

3

В C++, Ваше заявление должно заканчиваться ;

cout<<"hello,"<<first_name<<Last_name<<"!\n" 

Заявление должно заканчиваться ;

cout<<"hello,"<<first_name<<Last_name<<"!\n"; 

Вот список заявления, которое необходимо завершить

Statement type  Termination required? 
==============  ===================== 
labelled statement    N (a) 
expression      Y 
compound statements    N (a) 
selection statements   N (a) 
iteration statements   N (a) (b) 
jump statements     Y 
declaration statement   Y 

(а) Хотя иногда может показаться, что они заканчиваются полу-двоеточие, это не так. Утверждение:

if (i == 1) doSomething(); имеет полуточку, завершающую оператор внутреннего выражения, а не составной оператор, что должно быть очевидно, когда вы просматриваете первый сегмент кода выше, который имеет его внутри {} фигурных скобок.

(b) do требует выражения с запятой после выражения while.

0

Потому что вы забыли ; на линии до (в cout, который не имеет ; на конце):

Изменение:

cout<<"hello,"<<first_name<<Last_name<<"!\n" 

к:

cout<<"hello,"<<first_name<<Last_name<<"!\n"; 

... и посмотреть, не все ли лучше.

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