2015-07-10 58 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