c merkkitaulukko ja printf (C++BuilderX)

Miksi ohjelma ajettaessa odottaa ensin syötettä ja sitten vasta tulostaa: Anna nimi?
#include
#include

void main(void)
{
int i=0;
char nimi[18];
printf("Anna nimi:\n");
gets(nimi);
}


Tuloste:
jaska
Anna nimi:
6565
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

-Ei se odota syötettä
-int i on tarpeeton

#include
#include
#include
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused

int main(void)
{
char nimi[18];
printf("Anna nimi:\n");
gets(nimi);
printf("Annoit nimen:\n%s",nimi);//Tuloste on tässä !!!!!
getch();
return 0;
}
//**************************************************************************

Äänestä
  • Eikö ohjelman ajossa pitäisi tulostua ensin: Anna nimi? ja nimen kirjoittamisen ja enterin painalluksen jälkeen: annoit nimen XXX. Eikä niin että syötettä odotetaan ennen kysymyksen esittämistä? Tuntuu uskomattomalta mutta niin omassa koneessani käy. Valitan i muuttujan jäämistä kopioon, jäänteitä vanhasta kun olen ihmetellyt tätä, tämähän on c-kielen toiminnan vastaista.

    Äänestä

  • aloottelija kirjoitti:

    Eikö ohjelman ajossa pitäisi tulostua ensin: Anna nimi? ja nimen kirjoittamisen ja enterin painalluksen jälkeen: annoit nimen XXX. Eikä niin että syötettä odotetaan ennen kysymyksen esittämistä? Tuntuu uskomattomalta mutta niin omassa koneessani käy. Valitan i muuttujan jäämistä kopioon, jäänteitä vanhasta kun olen ihmetellyt tätä, tämähän on c-kielen toiminnan vastaista.

    Niin se minulla tekeekin!!!

    Äänestä

  • Builder kirjoitti:

    Niin se minulla tekeekin!!!

    Ajoin antamanne koodin ja oma koneeni ei edes suostunut etenemään siihen saakka että olisi tulostanut minkä nimen kirjoitin. Saatikka olisi ensin pyytänyt sitä. Tämä kaikella kunnioituksella tuohan näyttää ihan toimivalta koodilta jostain syystä ei koneeni toimi oikein.

    Äänestä

  • Builder kirjoitti:

    Niin se minulla tekeekin!!!

    Muutin Wizards/Target setting...
    kohtaa Single-threaded console project build settings alkuperäisiin arvoihin-olivat muuttuneet näköjään. Kiitos kuitenkin Builder. Oppijan tie on pitkä ja kivikkoinen...varsinkin itseoppijan.

    Äänestä

..voidia mainin paluutyyppinä.

ISO C standardi 5.1.2.2.1. kertoo sen olevan epävalidi.

Äänestä

Kommentoi aloitusta


aloottelija kirjoitti:

Miksi ohjelma ajettaessa odottaa ensin syötettä ja sitten vasta tulostaa: Anna nimi?
#include
#include

void main(void)
{
int i=0;
char nimi[18];
printf("Anna nimi:\n");
gets(nimi);
}


Tuloste:
jaska
Anna nimi:

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu