2015-07-10 61 views
-6

我有两个字符压缩小问题。程序无法识别字符

for(int i=0; i<initializer.size(); i++) 
{ 
    char letter; 
    letter=initializer[stringIter]; 
    if(letter=='+') 
    { 
     std::cout<<"+";  
    } 
    else if(letter=='-') 
    { 
     std::cout<<"-"; 
    } 
    else if(letter=='F') 
    { 
     std::cout<<"F"; 
    } 
    else 
    { 
     std::cout<<letter<<" UNKNOWN";} 
    } 
    initializer =F+F-F-F+F 
} 

当我试图打印字符我有小问号ins的真正的字符,几乎每个字符都是未知的。

+4

它不应该是'初始化[I]'?或者添加'stringIter'声明' – WorldSEnder

+2

完美的时间学习[如何使用调试器](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)并逐步完成代码,所以你可以看到究竟发生了什么。 –

+0

stringIter是我;)它的值相同。 – Menos

回答

0

这种方式将工作:

#include<iostream> 
#include<string> 
int main(){ 
std::string initializer = "F+F-F-F+F"; 
for(int i=0; i<initializer.size(); i++) 
    { 

     char letter; 
     letter=initializer[i]; 
     if(letter=='+') 
     {   std::cout<<"+"; 

     } 
     else if(letter=='-') 
     {   std::cout<<"-"; 

     } 
     else if(letter=='F') 
     {   std::cout<<"F"; 

     } 
     else 
     { 
     std::cout<<letter<<" UNKNOWN";} 
     } 
} 

DEBBUGING表明,他发现了一个\ 342 \ 210 \ 222字符为字母。但为什么?.. 那么最新的问题?它真的是字符。

+0

Lolz ..................................它的功能不在main中,并且初始化器正在传递给它。我已经这样写了,以显示它的价值..... – Menos

+0

等等?我修复了你的迭代器错误。如果你将这段代码插入非主函数,它将起作用。 – zveryansky

+0

看着这条线:letter = initializer [i]; – zveryansky