2013-06-26 3 views
0
checkChar :- 
    nl, 
    write('Enter a character [press 0 to stop]: '), 
    get(X), 
    process(X). 

process(X) :- 
    S = put(X), 
    0 == S, 
    !. 

process(X) :- 
    write('ASCII code for <'), 
    put(X), 
    write('>:'), 
    write(X), 
    checkChar. 

Пользователь вводит все, что захочет, пролог будет переводить символ в код ASCII и отображать его. Пролог прекратит выполнение, если будет введено 0, но как я могу сделать это, кроме сравнения с ASCII 48? (ASCII 48 = 0) Это то, что я пытался, но он все еще не может сразу остановиться я введите 0.String Compare With Write Statement

ответ

0

Я думаю, что это то, что вы можете искать:

checkChar :- 
    nl, 
    write('Enter a character [press 0 to stop]: '), 
    get(X), 
    process(X). 

process(X) :- 
    X =\= "0", 
    write('ASCII code for <'), 
    put(X), 
    write('>:'), 
    write(X), 
    checkChar.