1. sayfa
|
şöyle birşey yaptım bir dosya açtım "list" adında buraya istediklerimi giriyorum ancak ikinci bir kişiyi kaydetmeye kalktığımda önceden girdiğim ismi silip onun yerine yazıyor ben ise girdiğim tüm kayıtları alt alta sıralamasını istiyorum. #include "stdafx.h" #include <iostream> #include <conio.h> #include <string> #include <stdlib.h> #include <fstream> using namespace std; struct PersonalInformations { string FirstName; string LastName; float Not; }; void FileRead(PersonalInformations* pPI) { ifstream f("list.txt"); cout << pPI->FirstName <<" "<< pPI->LastName <<" "<< pPI->Not; } void FileWrite(PersonalInformations* pPI) { ofstream f("list.txt"); f << pPI->FirstName << " " << pPI->LastName << " " << pPI->Not; } int _tmain(int argc, _TCHAR* argv[]) { start: PersonalInformations PI; char key; cout << "Enter First Name:\n"; cin >> PI.FirstName; cout << "Enter Last Name:\n"; cin >> PI.LastName; cout << "Enter Note:\n"; cin >> PI.Not; FileWrite(&PI); FileRead(&PI); printf("\n\nWould you like to continue [ Y/N ]\n"); scanf("%c",&key); if(key=='Y'||key=='y') void main(); getch(); exit(1); system("CLS"); goto start; return 0; } |
| Çıkış dosyasını açarken (ofstream) 2. parametre olarak ios::out | ios::app ekle. |
|
hocam dediğin gibi yaptım teşekkür ederim yazdıklarımı list.txt ye kaydediyor artık. peki bu yazdıklarımı kaydederken alt alta nasıl numara ekleyebilirim? otomatik ID gibi? birde alttaki kod'ta sıkıntım var 'y' ile soruyu baştan alabiliyorum ama çıkış yapmak için 'n' yi tanımlayamadım ne eklemeliyim? ofstream f("list.txt",ios::out | ios::app); |
|
Niye numara ekliyorsun ki sonuçta dosya elle açıp okunmayacak. Dosyanın sonuna kadar giden bir döngü kuracaksın ve her adımda adı, soyadı ve notunu okuyacaksın. eof() fonksiyonu dosya sonunun gelip gelmediğini kontrol etmeye yarar. while(!f.eof()) şeklinde kullanabilirsin. Yine de altalta görünmesini istiyorsan her kişiden sonra '\n' karakterini yazacaksın. İstersen kişi bilgilerinden önce numarada yazabilirsin tabi. |
| alt alta yazmalı çünkü program içinde iken görüntüleyebilmeliyim tüm girilen verileri ayrıca struct float Not için girilen sayıların ortalamasını almalıyım |
|
Kardeşim senin dosyaya yazdığın şeyler sadece "bilgi" dir. Sen program içinde bu bilgileri okuduktan sonra ister altalta, ister bitişik, ister çorba gibi karışık görüntüleyebilirsin ekranda. Bilgileri okuduğun gibi direkt yazmak iyi bir fikir değil. Önce bunları hafızaya almalı sonra da istediğin şekilde görüntülemelisin. Yazdığın kodda bazı hatalar var. 1- Bu programdan hiçbir zaman normal şekilde çıkamazsın çünkü koşulsuz bir biçimde start: etiketine dallanıyorsun. 2- Fonksiyon çağrılırken dönüş değeri yazılmaz. Yani void main(); değil sadece main(); 3- Zorunlu olmadıkça (aklıma hiçbir örnek gelmiyor) main fonksiyonu kendi kendini çağırmamalı. 4- C/C++ ta goto kullanımı tavsiye edilmez. Kodun kontrolünü zorlaştırır ve fazlaca amatör bir ifadedir. |
bu start kısmından printf ye kadar olan kısmı "bilgigirisi" şeklinde bir fonksiyona at alt tarafa
tarzı bişiy yap orda "void main();" dediğin kısmı, derleyici nested function diye görür, declaration var definiton yok, if döngüsünden çıktığın andada siler, yani o noktada "int a;" demek gibi bi mantığı var. satır mezuna gelince, aralarına boşluk bırakarak dosyaya yazdırıyorsun, varsayalımki adamın 2 ön ismi varsa? eyvah... filewrite kısmında boşluk yerine | yada virgül salla, her satıra bir öğrenci bilgisi al. tekrar okurken de ya tüm satırı oku virgüllere göre 3 e ayır yada harf harf oku virgül gelince, bir önceki virgülden oraya kadar olan kısmı çek al, uygun değişkene ata |
|
arkadaşlar dönem ödevimi yaklaşık 2haftadan beri yapmaya çalışıyorum.ama olmuyo.sizden yardım istiyorummm. 1.Bir programda bilgisayar tarafından kullanıcıya iki adet 1-10 arasında rastgele sayı üretilmektedir. Sayıların toplamı 21’ den küçük olduğu sürece kullanıcıya “Bir sayı ister misiniz?” diye sorulacaktır. Soruya H cevabı verilirse sayı üretme işlemi bitecektir. Soruya E cevabı verilirse sayı üretme işlemi devam edecek ve sayı, toplam değere eklenecektir. Toplam sayı 21 den büyük olduğunda ekranda “Kaybettiniz” mesajı gelecek. Toplam sayı 21 den küçük ve sayı üretme işlemi bittiyse toplam sayı, bilgisayar için rastgele 15-21 arasında üretilen sayı ile karşılaştırılacak ve o sayıdan büyük ise “Kazandınız”, küçük ise “Kaybettiniz” mesajı ekrana yazdırılacak. Bu işlemleri yerine getiren programın algoritmasını, akış diyagramını ve C kodlarını yazınız. 2. 5 harfli isimlerden oluşan bir diziden seçilen bir ismi 5 hakta bulmaya çalışan programın algoritmasını, akış diyagramını ve C kodlarını yazınız. 3. Öğrencilerin “Ad”, ”Soyad”, “Numara” bilgilerini tutan bir dizi üzerinden şu işlemler gerçekleştirilecektir. a.Yeni öğrenci bilgi girişi b.Bilgi Düzeltme c.Numaraya göre öğrenci bulma Yukarıdaki işlemleri farklı alt programlarda yapan programın C kodlarını yazınız. |
Yaptiklarini yaz, takildigin yerleri sor, yardimci oluruz |
| http://www.uzmantr.net.tc/c++.html arkadaşlar bu siteden örneklere bakabilirsiniz eğer başka sorularınız varsa iletişim bölümünden sorabilirsiniz |
1. sayfa
örnek
isim girini :
ahmet
soyad giriniz :
turk
not :
4.00
isim girini :
veli
soyad giriniz :
pas
not :
5.00
kaydı şu şekilde olucak
1. ogrenci : ahmet turk 4.00
2. ogrenci : veli pas 5.00
gibi nasıl olur???
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.