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.
Entäs C system("pause"); mikäs vastaava C#?
Siis consoli ohjelmist kys.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
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
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;
}
}
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.
Vaati using System.Threading; alkuun.