【发布时间】:2010-09-10 22:41:11
【问题描述】:
这些是我的变量:
const int sizeOfLicToCheckFor = 3;
string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
当我运行我的程序时,licNameToCheckFor 只用“PROF”初始化,没有别的。 我究竟做错了什么?
【问题讨论】:
这些是我的变量:
const int sizeOfLicToCheckFor = 3;
string licNameToCheckFor[ sizeOfLicToCheckFor ] = { "PROF", "PERS", "PREM" };
当我运行我的程序时,licNameToCheckFor 只用“PROF”初始化,没有别的。 我究竟做错了什么?
【问题讨论】:
您如何检查它是否已正确初始化?很可能你做错了,因为代码是绝对正确的:
#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 >
【讨论】: