arkaslar scanf ile girdiğim isim ve soyisimleri nasıl text dosyasının içine yazabilirim. kodda yardımcı olabilir misiniz?
text e isim soyisim kaydetme
- [ Tüm kodu seç ] [ Yeni Pencerede Göster ]
#include "stdio.h" #include "conio.h" #include "stdlib.h" main() {FILE * f; int i=0,a=0,k=0,n1,n2,n3,no; float ort; char c,s[100],ad[150]; f=fopen("data.txt","w+"); if (f==NULL) exit(1); do{ i++; printf("\n<<<< %d. Oğrenci >>>>>",i); printf("\n Adi&soyadi =");scanf("%s",&ad); printf("\n No=");scanf("%d",&no); printf("\n"); printf("\n Not1=");scanf("%d",&n1); printf("\n Not2=");scanf("%d",&n2); printf("\n Not3=");scanf("%d",&n3); ort=(n1+n2+n3)/3; printf("\n Devam Edilsinmi [E/H] =");if (getche()=='h') break; fprintf(f,"%s %d %d %d %d ortalama=%f",ad,no,n1,n2,n3,ort); printf("\n");printf("\n"); }while (1); fclose(f); f=fopen("data.txt","r"); if (f==NULL) { printf("\n A‡#141;lam#141;yo"); exit(1); } printf("\n"); printf("\n"); while(k!=EOF) { if(k=='\n')printf("\n"); k=fgetc(f); putchar(k); } getch(); fclose(f); }
burada basitbir öğrenci bilgisi alıp dosyaya yazan program var.
Veriyi data.txt dosyasına yazıyor. kayıt girip onayladıktansonra bu dosyaya bak
Yukarıdaki kod hatalidir."char" veri tipli dizilerde(array) karakter girisi icin &(ampersand) karakterine gerek yoktur,cunku girilen yapı bir dizidir ve icerisinde adres bilgisini zaten tasımaktadır.Deger adrese degil dizinin kendisine yapılır.C programlama dilinde dosyaya formatlı veri girisi frintf() fonksiyonu ile yapılabilir.Ayrıca fwrite() ve fputs() fonksiyonlarıda sırasıyla tek hamlede ve tek tek karakter girisi ile bir dosyaya veri yazabilir.Belirtilen sorunun C dilindeki karsılıgı asagıdaki gibi olabilir.
#include <stdio.h>
int main() {
char isim[40];
printf("Lutfen isim soyisim giriniz:");
gets(isim);
FILE *dosya=NULL;
if((dosya=fopen("kayit.txt","a"))==NULL) {
printf("Dosya Acilamadi\n");
return 1;
}
fprintf(dosya,"%s",isim);
fclose(dosya);
return 0;
}
Başarılar