我目前正在使用以下代码从标准输入中读取第一个字符(提示后):
NSFileHandle *stdIn = [NSFileHandle fileHandleWithStandardInput];
NSString* input = [[NSString alloc]
initWithData:[stdIn readDataOfLength:1]
encoding:NSUTF8StringEncoding];
但是,在程序完成后,所有多余的字符都会被命令行(在本例中为 bash)解释。例如,提示是
File already exists, do you want to overwrite it? [y/N]
如果我输入noooooo
,bash-bash: oooooo: command not found
会在程序完成后说。我该如何避免这种情况?使用[stdIn readDataToEndOfFile]
不起作用,预期。
我可以使用[stdIn readToEndOfFileInBackgroundAndNotify]
,但如果我需要再次从这样的提示中获取用户输入,这是不可能的。