Çözüldü C++ ile yapılan kodda hata olmamasına rağmen çalışmıyor

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

şahıs

Hectopat
Katılım
2 Mart 2022
Mesajlar
1.287
Çözümler
9
Yer
Aksaray
Daha fazla  
Sistem Özellikleri
ryzen 5 1600 Team T-Force Vulcan TUF Gaming Alliance 16GB (2x8GB) 3200MHz CL16 DDR4 Asus rx 550 4gb gigabyte b450m -h wd10ezex , suv400s37240g
Cinsiyet
Erkek
Meslek
öğrenci
C++ ile yazdığım kod hata vermiyor ama çalıştırmaya çalışınca hata veriyor.
C++:
#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;
char oyna[] = { "oyna.bat" };
int sayi = 0, sayi1 = 0, sayi2 = 0;

int main() {
 int i = 1;
 int sayi = 0, sayi1 = 0, sayi2 = 0;
 while (i != 0) {

 char basamak1[9] = { '1', '2','3','4','5','6','7','8','9' };
 char basamak2[9] = { '1', '2','3','4','5','6','7','8','9' };
 char basamak3[9] = { '1', '2','3','4','5','6','7','8','9' };

 if (sayi >= 9) {
 sayi = 0;
 sayi1++;
 }
 if (sayi1 >= 9) {
 sayi1 = 0;
 sayi2++;
 }

 string yazi = { basamak1[sayi] + basamak2[sayi1] + basamak3[sayi2] + "oyna.bat" };

 int sayi3 = sayi + sayi1 * 10 + sayi2 * 100;
 ofstream oyna(yazi);
 oyna << "start";
 oyna.close();

 sayi++;

 }
}
 
Son düzenleyen: Moderatör:
Çözüm
i hiç artmıyor. Sonsuz loop.
string yazi = {}; bu kısımda da hata var. string'e character concat yapamazsın.
std::string str {std::string(1, ch) + std::string(1, ch2) + "C"};
Yukarıdaki gibi kullan yada str += <char> yada str += string.
Merhabalar,
Kodunda tanımladığın "int i = 1;" değerini hiç arttırmıyorsun. Bu sebeple sonsuz döngüye girerek durmadan dosya oluşturduğun için bellek hatası aldığını tahmin ediyorum.

Bu şekilde ofstream ile her seferinde bir dosya oluşturursun. Kodunun cpp dosyasının olduğu dizine bakarsan birçok dosya oluştuğunu göreceksin. Bunun için dosyayı while döngüsünün dışında açıp, bir dosyaya yazmasını sağlayabilirsin. Daha sonra while döngüsü bittiğinde dosyanı kapatırsın.

Öğrenirken keyifi eğlenceler. Araştırmaya devam.
 
Merhabalar,
Kodunda tanımladığın "int i = 1;" değerini hiç arttırmıyorsun. Bu sebeple sonsuz döngüye girerek durmadan dosya oluşturduğun için bellek hatası aldığını tahmin ediyorum.

Bu şekilde ofstream ile her seferinde bir dosya oluşturursun. Kodunun cpp dosyasının olduğu dizine bakarsan birçok dosya oluştuğunu göreceksin. Bunun için dosyayı while döngüsünün dışında açıp, bir dosyaya yazmasını sağlayabilirsin. Daha sonra while döngüsü bittiğinde dosyanı kapatırsın.

Öğrenirken keyifi eğlenceler. Araştırmaya devam.

1709666302714.png


Biraz geç fark etmiş olabilirim. :D
 
Merhaba,
Kodunda tanımladığın "int i = 1;" değerini hiç arttırmıyorsun. Bu sebeple sonsuz döngüye girerek durmadan dosya oluşturduğun için bellek hatası aldığını tahmin ediyorum.

Bu şekilde ofstream ile her seferinde bir dosya oluşturursun. Kodunun cpp dosyasının olduğu dizine bakarsan birçok dosya oluştuğunu göreceksin. Bunun için dosyayı while döngüsünün dışında açıp, bir dosyaya yazmasını sağlayabilirsin. Daha sonra while döngüsü bittiğinde dosyanı kapatırsın.

Öğrenirken keyifi eğlenceler. Araştırmaya devam.

Amacımda o zaten 1000 tane start dosyası olacak.

i hiç artmıyor. Sonsuz loop.
string yazi = {}; bu kısımda da hata var. string'e character concat yapamazsın.
std::string str {std::string(1, ch) + std::string(1, ch2) + "C"};
Yukarıdaki gibi kullan yada str += <char> yada str += string.
hocam şu satır hata veriyor

string yazi = { basamak1[sayi] + basamak2[sayi1] + basamak3[sayi2] + "oyna.bat" };
 
Son düzenleme:

Geri
Yukarı