C# apuja

C on mahollista katsoa ohjelman suoritus aika clock() mutta mitenkäs moinen onnistuu C#?

Entäs C system("pause"); mikäs vastaava C#?

Siis consoli ohjelmist kys.
5822
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

Mitenkäs tiedostosta luetaan postinumeroit?
Löysin vaikka kuinka ohjeita, jossa neuvotaan tiedoston lukeminen, mutta kaikissa teksti muotosille tiedostoille. Haluan että postinumerot tulee int eikä string

Äänestä
  • Eipä taida olla muuta vaihtoehtoa, kuin lukea ensin numerot stringiin ja sitten tehdä tiedoston sisäinen virta ja lukea siitä ne int:iin. En tiedä onko tämä minun toteutukseni mitenkään fiksu, mutta tässä olis jotakin. Tämä ei tietenkään sovellu suoraan postinumerojen lukemiseen, mutta idea tästä varmaan selviää.

    //Tämä funtio hakee tarvittavat tiedot käyttäjän antamasta tekstitiedostosta,
    //jonka nimen käyttäjä syöttää ja joka tallennetaan muuttujaan "nimi".
    //Funtio tallettaa lukemansa numerot int-tyyppiseen vector:iin "numerot". Jos
    //hakeminen ei onnistu, niin funtio palauttaa tiedon siitä ja ohjelman suoritus
    //lopetetaan.
    bool haeTiedot( string nimi, vector < int >& numerot )
    {
    ifstream tiedosto( nimi.c_str() );

    //Testataan onnistuuko tiedoston lukeminen.
    if( tiedosto )
    {
    string rivi = "";

    //Virtaa luetaan rivi kerrallaan, niin kauan kuin se onnistuu.
    while( getline( tiedosto, rivi ) )
    {
    //Muutetaan tiedostosta luettu rivi virraksi tiedoston sisällä.
    istringstream virta( rivi );

    int numero = 0;

    //Luetaan virtaa numero kerrallaan, niin kauan kuin se on mahdollista
    //ja tallennetaan luetut numerot "numerot" vector:iin
    for( unsigned int i; virta >> numero; i )
    {
    numerot.push_back( numero );
    }
    }
    tiedosto.close();

    return false;
    }
    else
    {
    return true;
    }
    }

    Äänestä

  • Pausen saat aikaan:
    Thread.Sleep( 1000 ); // nuku sekunti

    Oletko varma että haluat postinumerot integerinä? Esitysmuoto on string, muuten häviää etunollat. Voit toki lukea tiedoston sisällön merkkijonoina ja konvertoida ne integereiksi.

    Konversio näin.
    String sPostinro = "00380";
    try
    {
    int iPosti = Int32.Parse( sPostinro );
    }
    catch (Exception ex)
    {
    MessageBox.Show( "Oho! " ex.Message );
    }

    Suosittelen konversioon try..catchia tai jotakin muuta virhekäsittelyä siltä varalta että stringistäsi ei saa numeroa itkemälläkään.

    Ohjelman kuluttaman ajan saa ainakin laskettua itse kun tallettaa aloitusajan. Kellonlyömä näin:
    DateTime tNow = DateTime.Now();

    Äänestä

  • Nimimerkki kirjoitti:

    Pausen saat aikaan:
    Thread.Sleep( 1000 ); // nuku sekunti

    Oletko varma että haluat postinumerot integerinä? Esitysmuoto on string, muuten häviää etunollat. Voit toki lukea tiedoston sisällön merkkijonoina ja konvertoida ne integereiksi.

    Konversio näin.
    String sPostinro = "00380";
    try
    {
    int iPosti = Int32.Parse( sPostinro );
    }
    catch (Exception ex)
    {
    MessageBox.Show( "Oho! " ex.Message );
    }

    Suosittelen konversioon try..catchia tai jotakin muuta virhekäsittelyä siltä varalta että stringistäsi ei saa numeroa itkemälläkään.

    Ohjelman kuluttaman ajan saa ainakin laskettua itse kun tallettaa aloitusajan. Kellonlyömä näin:
    DateTime tNow = DateTime.Now();

    "Thread.Sleep( 1000 ); // nuku sekunti "

    Mihkäs kohti tuo pitää laittaa ja miten?
    Saan vaan virheen The name "Thread" does not exist in the current context(CS0103)

    Kääntäjänä on SharpDevelop 2.0, onkos muita ilmasia?



    "Oletko varma että haluat postinumerot integerinä? "

    Juu, sortin takia. Kyseessä on siis firman sisäiset postinumerot (huonenumerot) joten ei tule ongelmia nollien kanssa. Kiitoksia tuosta konversiosta se toimii.


    "DateTime tNow = DateTime.Now(); "
    Tämäkin toimii ilman sulkuja tosin, kiitoksia.

    Äänestä

  • Nimetön kirjoitti:

    "Thread.Sleep( 1000 ); // nuku sekunti "

    Mihkäs kohti tuo pitää laittaa ja miten?
    Saan vaan virheen The name "Thread" does not exist in the current context(CS0103)

    Kääntäjänä on SharpDevelop 2.0, onkos muita ilmasia?



    "Oletko varma että haluat postinumerot integerinä? "

    Juu, sortin takia. Kyseessä on siis firman sisäiset postinumerot (huonenumerot) joten ei tule ongelmia nollien kanssa. Kiitoksia tuosta konversiosta se toimii.


    "DateTime tNow = DateTime.Now(); "
    Tämäkin toimii ilman sulkuja tosin, kiitoksia.

    Vaati using System.Threading; alkuun.

    Äänestä

Kommentoi aloitusta


Nimetön kirjoitti:

C on mahollista katsoa ohjelman suoritus aika clock() mutta mitenkäs moinen onnistuu C#?

Entäs C system("pause"); mikäs vastaava C#?

Siis consoli ohjelmist kys.

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