C++ text file okuma

Başlatan kuleee, 25 Şubat 2011 - 00:24:47

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

kuleee

C++ da text dosyasından aşağıdakine benzer bir veri okumak istiyoruz..
34,45
54,23
54,54
87,12
yardımlarınız bekliyoruz...

utdmr

Ne denediniz bunun hakkında da sorun çıkardı? fstream kütüphanesine bakın: http://www.cplusplus.com/reference/iostream/fstream/
Kişisel Blogum: Çoğunlukla Zararsız - cogunluklazararsiz.org
--
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -and a lot of courage- to move in the opposite direction.

kuleee

using namespace std;

int main()
{

    ifstream inFile("input.txt");// input.txt has integers, one per line
   
    while (!inFile.eof())
    {
        int x;
        inFile >> x;
        if( inFile.eof() ) break;
        cerr << x << endl;

    }

    return 0;
}
sonuç ,ilk sayı sonsuz bir düngünün içinde sürekli yazdırılıyor.Yani virgüllerde bir problem var.
not:ayrıca,bu sayı çiftlerini  x ve y değerleri olarak atamak istiyoruz...
C++ pek bilmiyoruz .yardımcı olursanız çok seviniriz.

sem

#3
Virgül olayında şöyle oluyor diye tahmin ediyorum;

Float türündeki sayı otomatik tür dönüşümüne tabi tutuluyor...

Sonsuz döngüye girmesi ise dosya delikleri ile alakalı olabilir.. inFile fonksiyonunun okuma yapılamadığı zamanki geri dönüşünü if ile kontrol ederseniz sanırım sonsuz döngü sorunu hallolacaktır...

Dosya deliği oluşturabilmek için sanırım okuma değil yazma işlemi gerekiyordu.. Geri aldım bu teorimi =) Zaten bilgim olan bir konu değil dosya delikleri, ilk olarak aklıma o geldi...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

Erdem

Alıntı yapılan: kuleee - 25 Şubat 2011 - 00:55:52
using namespace std;

int main()
{

    ifstream inFile("input.txt");// input.txt has integers, one per line
   
    while (!inFile.eof())
    {
        int x;
        inFile >> x;
        if( inFile.eof() ) break;
        cerr << x << endl;

    }

    return 0;
}
sonuç ,ilk sayı sonsuz bir düngünün içinde sürekli yazdırılıyor.Yani virgüllerde bir problem var.
not:ayrıca,bu sayı çiftlerini  x ve y değerleri olarak atamak istiyoruz...
C++ pek bilmiyoruz .yardımcı olursanız çok seviniriz.

İlkönce fstream ve iostream başlık dosyaları eksik.

#include <iostream>
#include <fstream>


C++'nin kesirli sayılar için doğal sayı türü double'dır. Ama double sayılar yazılırken aralarına nokta koyularak yazılır. Eğer x değişkeninin türünü double yaparsan ve girişteki metin dosyasındaki sayıları da . kullanacak şekilde değiştirirsen programın çalıştığını göreceksin.

Sayı çiftlerini değişkenlere atmak istiyorsan satır satır okuyup daha sonra sayıların arasındaki boşluk ya da virgüle göre bunları göz ardı edip sadece sayısal değerleri ekrana yazabilirsin.
Eğer Arch Linux tabanlı bir dağıtıma geçmek isterseniz Arcolinux D sürümünü buradan indirebilirsiniz.

Elektronik