2016-09-17 99 views
0

我正在做一些非常基本的编码,用于在C++中使用Visual Studio 2015制作收据。我无法用空格创建名称而不被强制使用下划线(例如,Item 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

从CPP language reference documenation

标识符是任意长的数字序列,下划线 小写和大写拉丁字母,和大多数Unicode字符 (详见下文)。有效的标识符必须以非数字字符(拉丁文字母,下划线或Unicode非数字字符 字符)开头。标识符区分大小写(小写字母和大写字母 不同),每个字符都很重要。

总之,标识符(即变量名称,函数名称,类名称等)不能有空格。空格用于帮助划分构成语言的令牌。

+0

对于输出显示“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)。

  • 所有后续字符可能由第一个字符允许的相同字符加上十进制数字(09)组成。

因此,我们可以得出结论,**空格在标识符*中绝不允许。

(此外,大多数语言缺乏通过Z通过9和下划线(_用于除A其他符号名的支持,a通过z0)。例外的是少数,而且,对于这个问题的存在,是不值得担心。)

例如,下面是用C有效的名称++:

  • foo
  • foo_bar
  • MyVariable123

而下面不是:

  • 123variable
  • my integer
  • français

你也应该考虑到,你不应该使用以下标识符在内,因为他们保留:

  • 标识符以下划线开始后跟一个大写字母(如_Z3var)。 (包括__bazsome__identifier)。

  • 关键词(如intlongiffor,等...)是特殊的标识符,其中语言储备用于特殊目的。

相关问题