C++'ta dosyalama programı yaparken hata

Sydatolo

Hectopat
Katılım
30 Nisan 2021
Mesajlar
220
Makaleler
1
Daha fazla  
Cinsiyet
Erkek
Meslek
Öğrenci
[CODE lang="cpp" title="C++:" highlight="1-18"]#include<iostream>
#include<conio.h>
#include<windows.h>
#include<fstream>
#define renk system("color a");
int main(){
renk
while(1){
for(int i=0;i<2193817236812293;i++){
char a;
a=getchar();
std::cout<<a;
ofstream dosya01("kayit.txt");
dosya01<<a;
}
}
return 0;
}[/CODE]

Bu C++ kodunda:

main.cpp: In function 'int main()': main.cpp:13:13: error: 'ofstream' was not declared in this scope ofstream dosya01[i]("keyloggerkayit.txt"); ^~~~~~~~ main.cpp:13:13: note: suggested alternative: In file included from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\ios:38:0, from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\ostream:38, from c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\iostream:39, from main.cpp:1: c:\mingw\lib\gcc\mingw32\6.3.0\include\c++\iosfwd:165:34: note: 'std::ofstream' typedef basic_ofstream<char> ofstream; ^~~~~~~~ main.cpp:14:13: error: 'dosya01' was not declared in this scope dosya01[i]<<a[i]; ^~~~~~~

Bu hatayı veriyor.
Hatamı anlamadım, yardım olabilecek birisi var mı?
 
Son düzenleyen: Moderatör:
Ben de kodu anlamadım.
Renk kim? 7. satırda neler oluyor? ofstream kim? Niye dosya01 isimli bir array varmış gibi davranıyorsunuz? O sayı ne? Neden while döngüsü içinde bir de for döngüsü var? Programın nasıl sonlanmasını bekliyorsunuz? 10. satırda dizi tanımladığınızı mı sanıyorsunuz?
 
Ben de kodu anlamadım.
Renk kim? 7. satırda neler oluyor? Ofstream kim? Niye dosya01 isimli bir array varmış gibi davranıyorsunuz? O sayı ne? Neden while döngüsü içinde bir de for döngüsü var? Programın nasıl sonlanmasını bekliyorsunuz? 10. satırda dizi tanımladığınızı mı sanıyorsunuz?

Renk: Define ile tanımladığım Windows'ta renk değiştire bir komut
#define renk system("color a");
Eğer burada gördüyseniz.
2- İnternett earaştırdığımda yusufsezer adlı bir siteden görmüştüm.
3- For döngüsünün bitmesi için tanımladığım bir sayı.
4- For döngüsü sürekli dosya oluşturması için i adlı bir değişken oluşturup
Sürekli A1
A2
A3
A4

Diye istedim.

Büyük ihtimal döngü ile dosya oluşturulamıyor diye anladım.
 
Daha önce sana basit projeler için std namespace'ini kullan demiş olmam lazım. İlk hatan o. ofstream diye bir şey yok. std::ofstream var.
7. satırda hala neler döndüğü belli değil.
ofstream array'i oluşturabiliyor olman lazım. Syntax olarak sıkıntı çıkarmıyor en azından ama olayı hala anlamadım.

Sanırım şu işini görür veya başlangıç için yeterli olur.

Kod:
#include <iostream>
#include <fstream>
#include <sstream>
#include <array>
#include <windows.h>

#define RENK    system("color a")
#define N        2

int main() {
    std::array<std::ofstream, N> arr;
    std::stringstream ss;
    std::string str{ "kayit" };
    std::string fileName{ str };
    std::string strEnd{ ".txt" };

    for (auto i{ 0 }; i < N; ++i) {
        fileName = str;
        fileName += std::to_string(i);
        fileName += strEnd;

        arr[i].open(fileName, std::ofstream::out);
        arr[i] << "merhaba: " << i;
    }

    for (auto& i : arr) {
        i.close();
    }

    return 0;
}
 
Daha önce sana basit projeler için std Namespace'ini kullan demiş olmam lazım. İlk hatan o. Ofstream diye bir şey yok. Std:ofstream var.
7. satırda hala neler döndüğü belli değil.
Ofstream Array'i oluşturabiliyor olman lazım. Syntax olarak sıkıntı çıkarmıyor en azından ama olayı hala anlamadım.

Sanırım şu işini görür veya başlangıç için yeterli olur.

Kod:
#include <iostream>
#include <fstream>
#include <sstream>
#include <array>
#include <windows.h>

#define RENK system("color a")
#define N 2

int main() {
 std::array<std::ofstream, N> arr;
 std::stringstream ss;
 std::string str{ "kayit" };
 std::string fileName{ str };
 std::string strEnd{ ".txt" };

 for (auto i{ 0 }; i < N; ++i) {
 fileName = str;
 fileName += std::to_string(i);
 fileName += strEnd;

 arr[i].open(fileName, std::ofstream::out);
 arr[i] << "merhaba: " << i;
 }

 for (auto& i : arr) {
 i.close();
 }

 return 0;
}

Hocam, benim demek istediğim;
getch(); fonksiyonu ile her tuşa bastığında "log.txt" dosyasında getch ile aldığım veriyi yazdırmasını istiyorudum.
Mesela A, B, C, D, D, A, S, da diye 9 tane veri girsem 9 tane dosya oluşturacak ve
log1.txt = a
log2.txt = b
log3.txt = C

Diye gitmesini sağlamak isityordum.
 
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı