Şimdi Ara

Dosyadan Yazmak Dosyadan okumak

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
453
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba ben rastgele sayı üretip bu sayıyı bir harfe atayıp(5 harf var)sonra dosya açıp bu dosyaya yazıp sonrada
    dosyadan okumak istiyorum şöyle bir kod yazdım dosyaya yazıyor ama okuyunca da hep aynı sayıları çıkarıyor

    #include<iostream>
    #include<fstream>
    #include<string>
    #include <algorithm>
    using namespace std;
    int main()
    {
    int x,y,z,a,b,c,d,e,f,g,i,k,sayi;
    cout<<"kac harf olsun";
    cin>>k;
    string asd = "a";
    string asf = "b";
    string asg = "c";
    string ash = "d";
    string asj = "e";
    for(int i=0;i<k;i++)
    {
    a=rand() % 6;
    b=rand() % 6;
    c=rand() % 6;
    d=rand() % 6;
    e=rand() % 6;
    f=rand() % 6;
    g=rand() % 6;

    }
    ofstream cikti("dosya.txt");
    if(a==1)
    {cikti<<asd;}

    if(a==2)
    {cikti<<asf;}

    if(a==3)
    {cikti<<asg;}


    if(a==4)
    {cikti<<ash;}


    if(a==5)
    {cikti<<asj;}

    if(b==1)
    {cikti<<asd;}

    if(b==2)
    {cikti<<asf;}

    if(b==3)
    {cikti<<asg;}


    if(b==4)
    {cikti<<ash;}


    if(b==5)
    {cikti<<asj;}

    if(c==1)
    {cikti<<asd;}

    if(c==2)
    {cikti<<asf;}

    if(c==3)
    {cikti<<asg;}


    if(c==4)
    {cikti<<ash;}


    if(c==5)
    {cikti<<asj;}

    if(d==1)
    {cikti<<asd;}

    if(d==2)
    {cikti<<asf;}

    if(d==3)
    {cikti<<asg;}


    if(d==4)
    {cikti<<ash;}


    if(d==5)
    {cikti<<asj;}

    if(e==1)
    {cikti<<asd;}

    if(e==2)
    {cikti<<asf;}

    if(e==3)
    {cikti<<asg;}


    if(e==4)
    {cikti<<ash;}


    if(e==5)
    {cikti<<asj;}

    if(f==1)
    {cikti<<asd;}

    if(f==2)
    {cikti<<asf;}

    if(f==3)
    {cikti<<asg;}


    if(f==4)
    {cikti<<ash;}


    if(f==5)
    {cikti<<asj;}

    if(g==1)
    {cikti<<asd;}

    if(g==2)
    {cikti<<asf;}

    if(g==3)
    {cikti<<asg;}


    if(g==4)
    {cikti<<ash;}


    if(g==5)
    {cikti<<asj;}


    ifstream dosya("dosya.txt");
    string veriler, gecici;
    while (!dosya.eof ())
    {
    getline(dosya, gecici, '#');
    veriler += gecici;
    }
    cout << veriler;
    getchar();


    getchar();
    getchar();
    getchar();
    }



    < Bu mesaj bu kişi tarafından değiştirildi DefuseHostage -- 30 Mayıs 2013; 18:45:26 >







  • srand(time(NULL)) goremedim.

    Ayrica kodlamaniz kotu maalesef. Daha guzel algoritmalar yazmaya calisin.
  • Surrealist bi calisma olmus. Hocan olsam okuldan atardim :)

    Saka bi yana bugun butun gun evde canim sikiliyordu, firsattan istifade kullanabilecegin kullanabilecegin basit bir sablon yazdim. Hepten hazir olmasin diye toparlamadim; artik orasinida yaparsin.
    Notlar: rand fonksiyonu hatali, bilerek dokunmadim; google'dan random kullanim orneklerine bakip ve onu duzeltmelisin. Surekli farkli sayi uretebilmesi icin srand'la kullanman gerekiyor, daha dogrusu time fonksiyonuyla beslemen gerekiyor.
    Okuma islemi icin iki farkli yol yazdim, daha baska metodlarda var. Vector, linked list vs gibi yada dinamik olarak. Ilgini cekiyorsa bakabilirsin.
    Bu arada bilgisayarimda derleyici olmadigindan kodu derleyip calistirmadim, ufak tefek hatalar olabilir.
    Kolay gelsin.
    /** MENU **/ 
    do
    {
    cout << "Yeni veri girisi icin [1], dosyadan veri okumak icin [2]" << endl;
    cout << "Yok ben sevmedim buralari. Cikcam[3]";
    // Numara, harf vs ile yonlendirme icin
    cin >> sart;
    } while (sart==1 || sart==2 || sart==3);// Dogru seceneklerden biri girilinceye kadar
    // Ana menu icin sonsuz dongu

    switch(sart)
    {
    case 1 : yaz(); break;
    case 2 : oku(); break;
    case 3 : exit();
    }


    /** OKUR **/ 
    void oku(){

    ifstream girdi("dosya.txt");
    if(!girdi)
    {
    cout<< "Hata: Dosya okuma basarisiz!" << endl;
    exit(1); //Programdan cik
    }

    char temp[100]; // metod 1
    string temp; // metod 2


    while(!girdi.eof()){
    girdi >> temp; // metod 1
    getline (girdi,temp); // metod 2

    cout << temp;
    }
    girdi.close();
    }


    /** YAZAR **/ 
    void yaz(){
    ofstream cikti("dosya.txt");
    if(!cikti)
    {
    cout<< "Hata: Dosyaya yazma basarisiz!" << endl;
    exit(1); //Programdan cik
    }

    char xchar = 'a';
    int i, j, arr[7];

    for (i = 0; i < 7; i++)
    {
    arr[i]=rand()%6+1;
    }
    for (i = 0; i < 7; i++)
    {
    for (j = 0; j < 5; j++)
    {
    if (arr[i]==j+1)
    {
    cikti << xchar+j;
    continue;
    }
    }
    }
    cikti.close();
    }




  • tesekkürler
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.