2010-09-10 104 views
0

的这些都是我的变量:数组C++字符串类型

const int sizeOfLicToCheckFor = 3; 
string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" }; 
当我运行我的程序licNameToCheckFor

只与“汪”,没有别的初始化。 我在做什么错?

回答

2

你如何检查它是否被正确初始化?最有可能你正在做的是错的,因为代码是完全正确的:

#include <string> 
#include <iostream> 

using namespace std; 

int 
main() 
{ 
    const int sizeOfLicToCheckFor = 3; 
    string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" }; 
    for (int i = 0; i < sizeOfLicToCheckFor; ++i) 
    { 
     cout << licNameToCheckFor[i] << endl; 
    } 
} 

输出:

$ g++ -o test ./test.cpp 
$ ./test 
PROF 
PERS 
PREM 

您也可以不指定字符串的数量排列,这样简化代码:

string licNameToCheckFor [] = { "PROF", "PERS", "PREM" }; 
2

适合我。

为什么你认为它不起作用?

#include <string> 
#include <iostream> 

const int sizeOfLicToCheckFor = 3; 
std::string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" }; 

int main(int argc, char** argv) 
{ 
    std::cout << licNameToCheckFor[0] << " "; 
    std::cout << licNameToCheckFor[1] << " "; 
    std::cout << licNameToCheckFor[2] << " "; 
} 

> vi t.cpp 
> g++ t.cpp 
> ./a.exe 
PROF PERS PREM > 
+0

调试器会显示不正确的变量值吗?我正在测试,看看我的字符串是否正在用调试器正确初始化。 – TheFuzz 2010-09-10 22:48:41

+0

你在用什么调试器?它向你展示了什么?可能它只显示数组的第一个元素? “需要更多输入”(c) – 2010-09-10 22:52:12

+0

Im使用VS2008 C++的调试器。我跑了几次,没有骰子。它的“PROF”每一次。 – TheFuzz 2010-09-10 22:55:02