【发布时间】:2014-02-11 22:31:17
【问题描述】:
我正在使用 Vala 语言编程,但遇到一个问题:我不知道如何读取字符(虽然我知道如何读取字符串和整数)。
string name = stdin.read_line();
int maximum = int.parse(stdin.read_line());
char option = ????;
一个选项是使用 scanf(),但如果我使用它,我会在执行期间遇到问题。
谢谢:)
【问题讨论】:
标签: vala
我正在使用 Vala 语言编程,但遇到一个问题:我不知道如何读取字符(虽然我知道如何读取字符串和整数)。
string name = stdin.read_line();
int maximum = int.parse(stdin.read_line());
char option = ????;
一个选项是使用 scanf(),但如果我使用它,我会在执行期间遇到问题。
谢谢:)
【问题讨论】:
标签: vala
如果您只想从 GLib.FileStream 中读取单个字符,您可以使用 GLib.FileStream.getc,它“从流中读取下一个字符并将其作为无符号字符转换为 int 或 EOF 在末尾文件或错误。”实际上,GLib.FileStream.read_line is implemented using getc。所以 ”????”在您的问题中可能类似于(char) stdin.getc()。
如果您尝试与用户交互,请注意输入通常由终端缓冲,直到行尾。如果您想在用户按下某个键后立即获得一个字符,您需要使用 ncurses 之类的东西(Vala 绑定与 valac 一起分发)。
【讨论】: