2016-09-17 11 views
0

Я делаю очень простой код для создания квитанции в Visual Studio 2015 на C++. У меня возникли проблемы с созданием имен с пробелами без принуждения использовать символы подчеркивания (например, пункт 1 vs Item_1). Я чувствую, что это простое исправление, но я чрезвычайно новичок в кодировании в целом.Невозможно поместить пробелы в имена переменных - Visual Studio 2015 (C++)

Или, если что-либо, просто вывести на выход (квитанцию) пункт 1, а не Item_1.

Это мой текущий код:

#include "stdafx.h" 
#include <iostream> 

using namespace std; 


int main() 
{ 
    double Item_1; 
    double Item_2; 
    double Item_3; 
    double Total; 

    Item_1 = 2.50; 
    Item_2 = 0.75; 
    Item_3 = 12.98; 
    Total = Item_1 + Item_2 + Item_3; 

    cout << "Thank you for shopping at StuffMart" << endl; 
    cout << "Item_1 = " << Item_1 << endl; 
    cout << "Item_2 = " << Item_2 << endl; 
    cout << "Item_3 = " << Item_3 << endl; 
    cout << "Total = " << Total << endl; 

    system("pause"); 
    return 0; 
} 
+0

Вы нашли исправление. Вы также можете сделать camelCasing. – ChiefTwoPencils

+4

Существуют правила для идентификаторов в C++: http://www.c4learn.com/cplusplus/cpp-variable-naming/ –

ответ

2

От КПФ language reference documenation:

Идентификатор представляет собой произвольно длинную последовательность цифр, подчеркивания, строчные и прописные буквы латинского алфавита, а также большинство символов Unicode (подробнее см. ниже). Действительный идентификатор должен начинаться с символа без цифр (латинская буква, символ подчеркивания или символ Unicode без цифры ). Идентификаторы чувствительны к регистру (строчные и прописные буквы различны), и каждый символ значителен.

Таким образом, идентификатор (то есть имя переменной, имя функции, имя класса и т. Д.) Не может содержать пробела. Пространства используются, чтобы помочь разграничить токены, составляющие язык.

+0

Для вывода show «Item 1» я бы просто полностью не пытался использовать Item 1 в качестве переменной , или как я могу получить вывод для возврата «Пункт 1» или «Мужская рубашка» и т. д.? В настоящее время наличие переменной для имени не требуется для того, чего я пытаюсь достичь. –

+0

'\ w +' соответствует '123', что не является идентификатором. – 3442

+0

@KemyLand Удалил это, когда вы вводили этот комментарий. Дополнительное разъяснение будет путать, поэтому точка была удалена. – sdsmith

2

Вы Брус пробелов между именем переменной.

example: 

int shan kar;//Wrong Declaration 
int int;//Wrong Declaration You Cant Have Keywords in place of variables 


int shankar;//Valid Declaration 
int shan_kar;//Valid Declaration 

правил Для Объявить CPP переменных: http://www.sitesbay.com/cpp/cpp-variable-declaration

1

Проще говоря, вы не можете. В большинстве языков (и это включает в C++), правила именования идентификаторов (например, имена переменных) следующим образом:

  • Имя должно состоять не менее чем 1 символ.

  • Первый символ должен быть либо подчеркивание (_), заглавная латинская буква (A через Z), или строчная латинская буква (a через z).

  • Все последующие символы могут состоять из тех же символов, которые допускаются для первого символа, а также десятичных цифр (0 - 9).

Таким образом, мы можем заключить, что ** пробелы никоим образом не допускаются в идентификаторах *.

(Кроме того, в большинстве языков не хватает поддержки имен с другими символами, чем A через Z, a через z, 0 через 9 и подчеркивание (_). Исключение составляют немногие, и для материи бытия, не стоит беспокоясь о.)

Например, допустимыми являются следующие имена в C++:

  • foo
  • foo_bar
  • MyVariable123

И следующие: не

  • 123variable
  • my integer
  • français

Вы должны также принимать во внимание, что вы не должны использовать следующие идентификаторы, так как они защищены:

  • Идентификаторы, начинающиеся с символа подчеркивания за которым следует прописная буква (например, _Z3var).

  • Идентификаторы, содержащие любые два смежных подчеркивания (например, __baz или some__identifier).

  • Ключевые слова (такие как int, long, if, for и т.д ...) специальные идентификаторы которые языковые резервы для специальных целей.

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