Terve!
Millähän keinolla saisi tietää onko käyttäjän antama syöte (scanner) muotoa int?
Kiitos.
Onko se int
5
640
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
Vain vasemmistolaiset rakennemuutokset pelastavat Suomen
Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot193335Persut huutaa taas: "kato! muslimi!"
Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe92744- 282364
- 411659
KL: Mari Hynynen avoimena - Jouni-rakkaan ja Joel-pojan välit ovat nämä!
Mari Hynynen (ent. Perankoski) on naimisissa Jouni Hynysen kanssa. Marilla on edellisestä liitosta yksi lapsi, Joel Vola91374- 411281
- 81255
- 521203
Missikohu edustaa nykyajan monimuotoisuutta
Puolesta vai vastaan, saako esittää pilkkaavasti jonkun toisen ihmisen syntyperäisiä ominaisuuksia? Kadulla vastaan tule2581080Apua pyydän
Olen tyhmä, kun odotan, että mies lähettäisi viestin. Olemme kuitenkin väleissä ja viestejä on lähetelty. Minun aloitte331056