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:
return NULL; kısmı hata verdiriyor bende, "" return'ler isem çıktı alamıyorum.
 
ChatGPT'ye atın ve hatanın ne olduğunu bulmasını isteyin
 
@bitwise hocam etiketlediğim için çok özür dilerim müsaitseniz bakabilir misiniz?
 
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;

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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…