2014-02-11 4 views
2

Я программирую на языке Вала, и у меня есть проблема: я не знаю, как читать символ (хотя я знаю, как читать строку и целое число).Как читать символ в Вала?

string name = stdin.read_line(); 
int maximum = int.parse(stdin.read_line()); 
char option = ????; 

Один вариант использует scanf(), но если я его использую, у меня возникают проблемы во время выполнения.

Спасибо :)

ответ

3

Если вы просто хотите читать один символ из GLib.FileStream, вы можете использовать GLib.FileStream.getc, которая «считывает следующий символ из потока и возвращает его как беззнаковое полукокса гипс на междунар , или EOF в конце файла или ошибки. " На самом деле, GLib.FileStream.read_line is implemented using getc. Итак "????" в вашем вопросе будет что-то вроде (char) stdin.getc().

Если вы пытаетесь взаимодействовать с пользователем, обратите внимание, что вход обычно буферизуется терминалом до конца строки. Если вы хотите получить персонажа сразу после нажатия пользователем клавиши, вам нужно будет использовать что-то вроде ncurses (для которого привязки Vala распространяются с valac).

Смежные вопросы