Terve!
Millähän keinolla saisi tietää onko käyttäjän antama syöte (scanner) muotoa int?
Kiitos.
Onko se int
5
666
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
Veroaste on Suomessa viitisen prosenttiyksikköä liian matala
Veropohjaa on rapautettu käytännössä koko kulunut vuosituhat, jonka vuoksi valtion menoja on jouduttu rahoittamaan velka672405- 661387
Kyläkauppias ajoi kännissä töistä kotiin
Ei edes kallis auto estä humalassa ajamista, vaikka luulisi alkolukko olevan sellaisessa jo vakiovarusteena. https://ww751200EU komissio - EU-elpymisrahoja voidaan käyttää TILAPÄISESTI väärin!
Espanja ohjasi miljardeja euroja – Nyt EU-komissio teki yllättävän paljastuksen Skandaaliksi noussut Espanjan EU-rahoje41117- 79845
Kiitos upeasta palvelusta kukkamyyjä
Kiitos sinulle upea kaunis kukkamyyjä Kuhmon torilla 🌹 Upea iloinen asenteesi ja kaunis hymysi pelasti päiväni ❤️ Jäi19790- 43678
Ratikka Turkuun
Ei hyvä. Ja syy on siinä , kukaan ei osaa suunnitella oikeaa reittiä. Pitää huomioide, kiskoja sijaintia ei voi muutta83672Miehet trikoissaan
On se kauhian näkköistä, kun miehet tiukossa trikkoissa juoksentelloo ja mulukku paestaa trikkoijjen läpi. Kahtokkee pe25649- 30636