2014-01-27 102 views
0

嗨我目前正在尝试这样做,但它不解析。C++可能使用for循环int i = container?

我的代码是:

for (int x = 0; x < key.length(); x++) { 
     c = key.at(x); 

    } 

    for (int w = c; w < ptl.length(); w += keyL) { 
     cout << str[w] << endl; 
    } 

的关键是从得到的argv [2]的输入是 “52314”。我想要做的是让第二个forloop以int w = 5,int w = 2,int w = 3,int w = 1,int w = 4运行。那可能吗?

Anyhelp会很棒。

谢谢你

+1

'的for(int i = 0;我

+0

它应该是一个转置密码输入不带有空格。 – Ray

+0

什么是'ptl','keyL'和'str'? – Barmar

回答

0

那么,显然你有更多的代码。因为您正在分配的c已在前面定义。

您将遇到的第一个问题是c将采用值'5'而不是5。这看起来可能相同,但第一个是字符代码,第二个是整数。现在'0' to '9'的字符编码是连续的,这意味着c-'0'是正确的整数。

第二个问题是,你的第一个循环运行完成,覆盖c 5次。只有那么最后值使用。你想用c它覆盖之前,这样做的:把第二for直接分配给c后,以前}

+0

您好我有权说您建议(int x = 0; x < key.length(); x ++){ c = key.at(x); for(int w = c; w Ray

+0

@射线:这是修复第二个问题的最小变化。就个人而言,我只是写'for(char c:key){for int w = c-'0'; ...' – MSalters

+0

嗨@MSalters你介意完整地写代码吗?谢谢。 – Ray