0
的这些都是我的变量:数组C++字符串类型
const int sizeOfLicToCheckFor = 3;
string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
当我运行我的程序licNameToCheckFor
只与“汪”,没有别的初始化。 我在做什么错?
的这些都是我的变量:数组C++字符串类型
const int sizeOfLicToCheckFor = 3;
string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
当我运行我的程序licNameToCheckFor
只与“汪”,没有别的初始化。 我在做什么错?
你如何检查它是否被正确初始化?最有可能你正在做的是错的,因为代码是完全正确的:
#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" };
适合我。
为什么你认为它不起作用?
#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 >
调试器会显示不正确的变量值吗?我正在测试,看看我的字符串是否正在用调试器正确初始化。 – TheFuzz 2010-09-10 22:48:41
你在用什么调试器?它向你展示了什么?可能它只显示数组的第一个元素? “需要更多输入”(c) – 2010-09-10 22:52:12
Im使用VS2008 C++的调试器。我跑了几次,没有骰子。它的“PROF”每一次。 – TheFuzz 2010-09-10 22:55:02