我正在使用Vala语言进行编程,我遇到了一个问题:我不知道如何读取字符(虽然我知道如何读取字符串和整数)。
string name = stdin.read_line();
int maximum = int.parse(stdin.read_line());
char option = ????;
一个选项是使用scanf(),但如果我使用它,我在执行期间遇到问题。
谢谢:)
答案 0 :(得分:3)
如果您只想从GLib.FileStream读取单个字符,可以使用GLib.FileStream.getc,它“从流中读取下一个字符并将其作为无符号字符串转换为int或EOF on文件结束或错误。“实际上,GLib.FileStream.read_line is implemented using getc。所以 ”????”在你的问题中将是(char) stdin.getc()
。
如果您尝试与用户进行交互,请注意,终端通常会缓冲输入直到行尾。如果你想在用户按下一个键后立即获得一个字符,你需要使用像ncurses这样的东西(Vala绑定与valac一起分发)。