C/C++ TXT yazdırma işlemi nasıl yapılır?

kerembysl

Hectopat
Katılım
2 Ocak 2022
Mesajlar
55
Daha fazla  
Sistem Özellikleri
AMD Ryzen 5 2600
Gigabyte A520M-K V2
16 GB 3600 Mhz GOODRam
120 GB Hikvision SSD
Cinsiyet
Erkek
Meslek
Bilgisayar Teknisyeni
Konu kısaca şudur: TXT'de örnek verildiği gibi 2 sayıyı elle yazacağım fakat işlemleri manuel yani elle yapacağım. 4 işlem (+,-,*,/). Bunları da sayac gibi bir değişkene atayıp TXT'ye bir alt satıra yazdıracağım. Bunu nasıl yapacağımı birçok kaynaktan baktım fakat bulamadım.

 
Son düzenleyen: Moderatör:
Hiçbir şey anlamadım. Örnek girdi ve çıktı paylaşabilir misiniz? Bunu elinizle gelip buraya yazmanızı bekliyorum. Birkaç tane olsa hiç fena olmaz.

Untliedd1.txt adlı text dosyasına elle alt alta 3 adet olacak şekilde sayi, islem, sayi1 degiskenlerini atayip bunları toplatmam ve sonuç diye bir değişken ile Debug'da göstermem gerekli. Yani dosyada;

8
+
3

Ya da.

1
*
9

Gibi rakamlar olacak Txt`de.

= Untliedd.txt Dosyası =

5
+
3

= Okuma kodları =

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
string line;
ifstream myfile ("Untliedd1.txt");
if (myfile.is_open())
{
while(getline(myfile, line)) {
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
 
8 + 3 şeklinde metin belgesinden okuyup programda sonucu mu göstermek istiyorsun?
 
Sadece 3 karakter ve 3 satır olacaksa elle okuyun ve işlemi yapın. Bu dört işlem yapabilen hesap makinesine kadar gider. Tam durumu soruyorum ve söylemiyorsunuz.

Daha fazla sayı olacaksa std::vector ile kaydeder sonra işlem önceliğine göre gezerdim.

Kod:
#include <iostream>
#include <fstream>
#include <string>

int main () {
    std::string line1;
    std::string line2;
    std::string line3;
    float result = 0.0f;
    
    std::ifstream myfile ("untitled.txt");
    
    if (myfile.is_open()) {
        std::getline(myfile, line1);
        std::getline(myfile, line2);
        std::getline(myfile, line3);
        
        
        if (line2 == "+") {
            result = std::stof(line1) + std::stof(line3);
        }
        else if (line2 == "-") {
            result = std::stof(line1) - std::stof(line3);
        }
        else if (line2 == "*") {
            result = std::stof(line1) * std::stof(line3);
        }
        else if (line2 == "/") {
            result = std::stof(line1) / std::stof(line3);
        }
        
        std::cout << result << '\n';
        
        
        myfile.close();
    }
    else {
        std::cout << "Unable to open file";
    }
    
    return 0;
}
 
8 + 3 şeklinde metin belgesinden okuyup programda sonucu mu göstermek istiyorsun?
Evet sonucu göstericem ve işlemi elle yapmam gerekiyor.

Arkadaşlar şu an basit bir hesap makinesi yaptım. Sorun şu ki sayi1 ve sayi2'yi elle Txt'ye yazacağım ve işlemi(+,-,*,/) koddan yani Debug'dan seçeceğim sonucu yine Debug'da göstermesi gerekiyor.
 

Dosya Ekleri

  • resim_2023-12-21_081139268.png
    105,8 KB · Görüntüleme: 67
Son düzenleme:

Böyle bir şey mi istiyorsun bilmiyorum ama yinede paylaşıyım. Dosya.txt içine 2 den fazla sayı yazma yoksa hata alırsın.

C++:
#include <iostream>
#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main()
{
    ifstream dosya("dosya.txt");

    if (dosya.is_open())
    {
        int index = 0, sonuc = 0, sayilar[2];

        string metin;

        char islem;

        while (getline(dosya, metin))
        {
            sayilar[index] = stoi(metin);

            index++;
        }

        dosya.close();

        cout << "Yapmak istediginiz islemi secin (-, +, /, *): ";
        cin >> islem;

        if (islem != '-' && islem != '+' && islem != '/' && islem != '*')
        {
            cout << "Hatali islem sectiniz.";
            return 0;
        }

        if (islem == '-')
        {
            sonuc = sayilar[0] - sayilar[1];
        }

        else if (islem == '+')
        {
            sonuc = sayilar[0] + sayilar[1];
        }

        else if (islem == '/')
        {
            sonuc = sayilar[0] / sayilar[1];
        }

        else if (islem == '*')
        {
            sonuc = sayilar[0] * sayilar[1];
        }

        cout << "Islem Sonucu: " << sonuc << endl;

    }
    else
    {
        std::cout << "Dosya yok veya acilamadi.";
    }
}
 
Hata veriyor kankam.
 

Dosya Ekleri

  • resim_2023-12-22_110527412.png
    69,7 KB · Görüntüleme: 58
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…