C++ kodu hiç bir çıktı vermiyor

479980

Decapat
Katılım
29 Temmuz 2021
Mesajlar
742
Çözümler
1
C++ ile bir kod yazdım fakat kod hiç bir çıktı vermiyor. Hata da vermiyor.
Kod:
C++:
#include <iostream>
#include <vector>
using namespace std;
void printVect(vector<string> inp,char pchar = '\0') {
    for (const string& w : inp) {
        if (pchar != '\0') { cout << w << pchar; }
        else { cout << w; }
    }
}

long int findToken(vector<string> text,long int index, string ftext) {
    for (index <= text.size(); index++;) {
        if (text.at(index) == ftext){
            return index;
        }
    }
    return 0; // bulunamazsa döndürcek
}

vector<string> clearCode(vector<string> code, int baslangic, int bitis) {
    // Verilen konumdan bitiş konumuna kadar verilen karakteri silcek
    code.erase(code.begin()+baslangic,code.begin()+bitis);
    printVect(code);
    return code;
}

vector<string> Parser(string code, string charset) {
    vector<string> parsingCode;
    string guncelCode;
    for (char c : code) {
        bool found = false;
        for (char checkChar : charset) {
            if (checkChar == c) {
                parsingCode.push_back(guncelCode);
                parsingCode.push_back(string(1, checkChar));
                guncelCode = "";
                found = true;
                break;
            }
        }
        if (!found) {
            guncelCode += c;
        }
    }
    parsingCode.push_back(guncelCode);
    //printVect(parsingCode);
    return parsingCode;
}

string interpreter(vector<string> code) {
    long int counter = 0;
    /*
    counter --> parselanmış kodda gelinen yerin indexi
    */
    for (counter <= code.size(); counter++;) {
        if (code[counter] == "write") {
            code = clearCode(code,counter,findToken(code,counter,"("));
            printVect(code);
        }
    }
    return "";
}

int main() {
    string code = "write     (\"na  ber\");";
    string charset = ")(\"; ";
    vector<string> output = Parser(code, charset);
    interpreter(output);

    return 0;
}

Nasıl düzelteceğim?
 
Son düzenleme:
Debugging ne bilmiyor ya da yapmak istemiyorsanız ya da yapma imkanınız yoksa(online bir tool kullanıyorsanız mesela) kodun sağına soluna cout işlemleri ekleyebilirsiniz, "blabla methodunun içine girdi" ya da "loopun içindeki i. döngü" vb. gibi. Bu sayede kodunuzun hangi noktada sizin beklediğiniz gibi çalışmadığını fark edebilirsiniz.

Mesela sizin kodunuzda bir noktada vector içinde elemanlar olmasına rağmen bir döngünün içine girmiyor. Nerede olduğunu bulabilirseniz koddaki yanlış yazılmış olduğunu düşündüğüm satırı da düzeltebilirsiniz diye anladım.
 
findtoken ve interpreter fonksiyonlarında for kullanımın yanlış. Ne olduğunu tespit edemezsen söylerim, onları düzeltince çıktı olarak şu geliyor;
1697647975330.png

Kodun kalan mantığına hiç bakmadım. Doğru bir çıktı mı değil mi kısmını bilmiyorum yani, ama sonuç bu çıkıyor. Kodunda for dışında dediğim gibi bir değişiklik yapmadım.
 
findtoken ve interpreter fonksiyonlarında for kullanımın yanlış. Ne olduğunu tespit edemezsen söylerim, onları düzeltince çıktı olarak şu geliyor;
Eki Görüntüle 1981996
Kodun kalan mantığına hiç bakmadım. Doğru bir çıktı mı değil mi kısmını bilmiyorum yani, ama sonuç bu çıkıyor. Kodunda for dışında dediğim gibi bir değişiklik yapmadım.
Ben düzelttim onları çoktan teşekkürler yine de.
 

Technopat Haberler

Yeni konular

Geri
Yukarı