C'de boyle bir sey mumkun mu?

Başlatan empax, 14 Temmuz 2011 - 13:46:54

« önceki - sonraki »

0 Üyeler ve 5 Ziyaretçi konuyu incelemekte.

microanaliz

#25
Sonuc nasıl çıkmalı sadece yazımı yazmalı...Evet gene denedim gene `selam 6` çıktı aşağıdaki kodun çıktısı...
#include<stdio.h>
int main()
{
printf("%d",printf("Selam\n"));
return 0;
}
kod böyle
MicroAnaliz

sem

Şu şekilde olması lazım;

Önce içerideki selam yazısı yazılması lazım; daha sonra içteki printf'in geri dönüş değeri dışarıdaki printf'e verilmeli ve bir sayı yazmalı... printf'in geri dönüş değeri ise yazdırdığı karakter sayısı kadardır... İlk printf selam + \n yani toplam 6 karakter yazdırıyor. O nedenle çıktı;

selam
6

olmalı... Örneğin \n karakterini silince;

selam5

şeklinde çıktı vermeli... Kafanızı karıştırmasın... Genelde printf'in değeri hiç kullanılmadığı için biraz karışık gibi duruyor fakat olay şundan ibaret aslında;

#include<stdio.h>

tamsayiverbanakibenprintfevereyimprintfdeekranaversinfonksiyonu()
{
return 5;
}

int main()
{
printf("%d",tamsayiverbanakibenprintfevereyimprintfdeekranaversinfonksiyonu());
return 0;
}

daha basit olacak olursa;
besver()
{
return 5;
}

int main()
{
printf("%d",besver());
return 0;
}
".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?

microanaliz

Evet printf geri dönüş değeri oluyormuş ne kadar karakter o kadar sayı yazıyor.Daha neler öğreneceğiz bilginize ilginize teşekkürler...(demekki hocalardan zaman zaman öğreneceğiz acelemiz yok daha çok çalışmamız lazım)
MicroAnaliz

online

#28
Alıntı yapılan: empax - 14 Temmuz 2011 - 13:46:54
Merhabalar.


C'de mesela ekranda,
Bir sayi giriniz
seklinde bekleyen mesaji alttaki gibi yapabilir miyiz?
Bir sayi giriniz[ ]
Klavyeden o anda girilen sayi [ ] koseli parantezler arasinda gorunecek. Bir sayi giriniz[5] seklinde ve enter tusuna basildiktan sonra degiskene o deger atanmis olacak. Bu mumkun mudur ?

Bilemiyorum anlatabildim mi buda kodlanmis hali;  :)
printf("Bir sayi giriniz[scanf("%d",&a);]");

Bu kadar zamandan sonra faydası olur mu bilemem ama şöyle yapılabiliyor:

#include <stdio.h>
int main(void) {
    int a;
    printf("Bir sayi giriniz[ ]\b\b"); /* buradaki \b\b imleci iki karakter geri götürür */
    scanf("%d",&a);
    printf("Sayiniz: %d",a);
    return 0;
}

empax

Neden faydasi olmasin @online, muhakkak birilerinin isine yarayacaktir. Tesekkurler.  :)
بسم الله الرحمن الرحيم
|ACEMİLER İÇİN İLK DURAK|Çözüldü|Kod etiketi|

alquirel

Peki böyle imleci iki karakter geriye götürdüğümüzde, kullanıcı iki veya üç basamaklı bir sayı girerse parantez kayboluyor mu, yoksa sürekli sağa kayıyor mu?

travego0403

@alquirel
2 veya daha fazla basamaklı sayı girildiğinde üstüne yazıp geçiyor. Daha önce bende düşünmüştüm kaçırma tuşlarını kullanarak imleci geri almayı ama üstüne yazma olduğu için vazgeçmiştim.

Acaba Terminalde o an için Insert tuşu açıp kapama gibi bir durum olabilir mi?
"Matematik bir dildir ve bu dilde şairlere fizikçi denir." Richard Feynman

online

Hiç düşünmemiştim birden fazla rakamı. :) Parantezi sağa kaydırma olayı ncurses'la yapılabilir sanırım, araştırıp dönerim.

sem

Ben bu olayı dosyada denediğimde üzerine yazmıyordu. stdin'de farklı diğer dosyalarda farklı davranıyor yani değil mi? Eğer dosyalarda da ynı şekilde davransa doya işlemlerinde sil - yarat yapmamıza gerek olmazdı aslında. BEnden başka deneyen oldu mu acaba?
".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?