Kezdőoldal » Számítástechnika » Programozás » C programban milyen kifejezéss...

C programban milyen kifejezéssel lehet törölni az input buffert? Az fflush (stdin) nem működik.

Figyelt kérdés
2013. okt. 12. 12:03
1 2
 1/16 anonim ***** válasza:

[link]


Az első találaton van pár alternatív megoldás.

2013. okt. 12. 13:21
Hasznos számodra ez a válasz?
 2/16 anonim ***** válasza:
de ha működne akkor se használd, mert nem arra való
2013. okt. 12. 14:01
Hasznos számodra ez a válasz?
 3/16 A kérdező kommentje:
egyik se jó.. sajnos kezdő vagyok még
2013. okt. 12. 14:11
 4/16 anonim ***** válasza:

a válaszok között van egy ilyen is:


fseek(stdin,0,SEEK_END);


ilyet sosem használtam, de gondolom a standard input (mint fájl, mert minden fájl) végére állítja a stream mutatót, ami jónak tűnik, és alatta is azt írták, hogy megy

2013. okt. 12. 14:22
Hasznos számodra ez a válasz?
 5/16 A kérdező kommentje:

a programom sehogy se működik jól :(


hogy a francba tudom kimásolni mceditből, és beilleszteni ide?

2013. okt. 12. 14:34
 6/16 anonim ***** válasza:
A fájlt nem tudod elérni, amit mcedit-tel szerkesztesz?
2013. okt. 12. 14:43
Hasznos számodra ez a válasz?
 7/16 A kérdező kommentje:

#include <stdio.h>

#include <math.h>

int main(){


char muvjel;

double adat1, adat2, ered;

printf("1. adat: "); scanf("%lf", &adat1);

printf("2. adat: "); scanf("%lf", &adat2);

fseek(stdin,0,SEEK_END);

printf("mĂĽveleti jel(+,-,*,/): "); scanf("%c", &muvjel);


switch(muvjel)

{

case '+': ered= adat1 + adat2; break;

case '-': ered= adat1 - adat2; break;

case '*': ered= adat1*adat2; break;

case '/': if(fabs(adat2) < 1.0e-6)

{

printf("nevező zérus\n");

getchar();

return 1;

}

else

{

ered=adat1/adat2; break;

}

default:

{

printf("hibás müveleti jel\n"); getchar();

return 1;


}

}

if(muvjel == '/')

printf("\n %lf %c %10e = %lf\n", adat1, muvjel, adat2,

ered);

else

printf("\n %lf %c %lf = %lf\n", adat1, muvjel, adat2,

ered);

fseek(stdin,0,SEEK_END);

return 0;

}

2013. okt. 12. 14:49
 8/16 A kérdező kommentje:
ez a program lefordul, de nem jól működik. beírom a 2 adatot, és utána műveleti jelet nem lehet beírni, mert rögtön azt írja ki : hibás adat..
2013. okt. 12. 14:54
 9/16 anonim ***** válasza:

egyrészt nekem működik,

másrészt a végére nem kell az fseek (vagyis minek?),

harmadrészt ha ezzel nem is, de ezzel biztosan menne:

while (getchar()!='\n');


végül pedig...


miért nem olvasod be infix operátorral?



printf("Elvegzendo muvelet (pl. 2+3 vagy 5/4): ");

scanf("%lf%c%lf", &adat1, &muvjel, &adat2);


kész is

2013. okt. 12. 17:19
Hasznos számodra ez a válasz?
 10/16 A kérdező kommentje:

nagyon köszönöm :DDD

while (getchar()!='\n'); ezzel működött

egyébként tankönyvből másoltam a feladatot, de vannak benne régi kifejezések, utasítások..

pedig 2004-es kiadás.C

a címe: Együtt könnyebb a programozás: c

2013. okt. 12. 17:30
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!