Terve!
Millähän keinolla saisi tietää onko käyttäjän antama syöte (scanner) muotoa int?
Kiitos.
Onko se int
5
649
Vastaukset
- ihmettä tarkoitat?
Tarkoitatko:
1) Skannattujen kuvien OCR-prosessointia?
2) scanf-perheen funktiota?
Jos ongelma on Xscanf (fscanf, sscanf, jne.), lue tuntematon merkkijonona, ja sen jälkeen tutki onko ensimmäinen merkki '-', jos on, lisää pointteria joka osoittaa merkkijonoon yhdellä. scanf-funktioita ei tietenkään näe juuri koskaan missään hyvin toteutetussa ohjelmistossa, ilmiselvistä syistä.
#include
#include
int check_number(char * str)
{
/* onko ensimmäinen merkki miinus */
if(*str =='-') str ;
do
{
if(!isdigit(*str)) return 0;
}
while(* str);
return 1;
}
int check_int(char * str)
{
/* tarkastetaan onko numero esitettävissä int-muodossa */
int number;
char buf[20];
number = atoi(str);
sprintf(buf, "%d", number);
if(strcmp(buf, str)==0)
return 1;
return 0;
}
int main(void)
{
int i;
char *test[] = {"", "-123", "-", "a", "100", "12312312382131232"};
char *test2[] = {"blah 123 bleh", "blah - bleh", "abc -200 aaa"};
char buf[50];
for(i=0; i- luulin aiheen olevan C:tä
kylläpäs nyt sattuikin... en jaksa samaa javana. Vinkki - Exception.
- keksa
käytä Integer-luokan metodeja
muistaakseni
try
{
int luku = Integer.valueOf( syöte ).intValue()
}
catch (exception e)
{
//eipä ollu perkema!
} - tietoa
Jos katsotaan apia: http://java.sun.com/j2se/1.5.0/docs/api/java/util/Scanner.html#nextInt()
niin nähdään nopeasti, että minkälaisen poikkeuksen scanner heittää, jos syöte ei ole sopiva. Tuosta sit vaan try-catchillä homma haltuun - Esimerkkejä
--- ESIMERKKI ALKAA ---
import java.util.Scanner;
public class Esimerkki {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
if (scan.hasNextInt())
System.out.println("Syöte on int: " scan.nextInt());
else
System.out.println("Syöte ei ole muotoa int");
}
}
--- ESIMERKKI LOPPUU ---
--- ESIMERKKI ALKAA ---
import java.util.InputMismatchException;
import java.util.Scanner;
public class Esimerkki {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
try {
int numero = scan.nextInt();
System.out.println("Syöte on int: " numero);
} catch(InputMismatchException e) {
System.out.println("Syöte ei ole muotoa int");
}
}
}
--- ESIMERKKI LOPPUU ---
--- ESIMERKKI ALKAA ---
import java.util.Scanner;
public class Esimerkki {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String jono = scan.next();
try {
int numero = Integer.parseInt(jono);
System.out.println("Syöte on int: " numero);
} catch(NumberFormatException e) {
System.out.println("Syöte ei ole muotoa int");
}
}
}
--- ESIMERKKI LOPPUU ---
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Lääppijä Lindtman jäi kiinni itse teosta
Lindtman kyselemättä ja epäasiallisesti koskettelee viestintäpäällikköä. https://www.is.fi/politiikka/art-20000117808521784112Huomaatteko Demari Tytti ei esitä pahoitteluitaan
Samanlainen ilmeisesti kuin Marin eli Uhriutuu no he ovat Demareita ja muiden yläpuolella siis omasta mielestään823242Vedonlyöntiä .
Olen valmis lyömään ison vedon , että homma kaatuu . Jos kerta Sivonen ei lähde mukaan , niin ei tuoho usko kukaan muuka242416Turvaan tulleet lähettävät omia lapsiaan vaaraan - hullua
MOT-ohjelman jakso ”Loma vaihtui kahleisiin” kertoi, kuinka Suomessa ja muualla Euroopassa asuvat somaliperheet lähettäv562216Mikä on pahinta, mitä kaivatullesi
pelkäät tapahtuvan? Jos kuolemaa, vakavia sairauksia yms. ei lasketa?882075TUNNISTELAATIKKO
Tähän ketjuun voi laittaa yhdellä tai kahdella lauseella (tai vaikka yhdellä sanalla) täydellisen tunnisteen, jonka vain851381Tykkäätkö enemmän tavis- vai julkkiskisaajista tv:ssä?
Tykkäätkö enemmän tavis- vai julkkiskisaajista tv:ssä? Moni reality ja visailuohjelma luottaa julkkiksiin, mutta sentään261290- 401280
Zoo jatkaa - jatkuuko mustamaalaus?
Tänään on päätetty Zoon avaamisesta uudelleen. Mielenkiintoista nähdä kautokurujen reaktio, nyt kun kyse ei ole kunnalli631129Valehdella saa, totuus salataan
Vaikuttaa vähän siltä, että sensuuria toteutetaan juorupalstallakin. Asioita saa kaunistella ja vääristellä, mutta totuu10788