在OS X的终端中,如果键入“say”并按回车,命令不会退出,并且任何后续输入的内容(随后返回)由系统说。这种效果如何实现?继续接受命令行工具中的输入(如say命令)
回答
如果您键入cat
并返回,则命令不会退出,并且任何后续输入的内容和后面的返回都会打印在屏幕上(而不是通过扬声器转换为语音,如say
) 。所以,简单的位是直到EOF读取线;您可以轻松地使用fgets()
,或者使用getline()
。
int main(void)
{
char buffer[4096];
while (fgets(buffer, sizeof(buffer), stdin) != 0)
{
fputs(buffer, stdout);
// Or invoke appropriate text-to-speech function(s)
}
return(0);
}
文本到语音转换将通过Apple提供的调用完成。您可能需要使用Objective C来理解接口,在这种情况下,您可能还需要使用其他输入函数或将字符串转换为适当的Objective C构造。
的/usr/bin/say
命令使用的库:
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 633.0.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 41.0.0)
/System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AudioUnit.framework/Versions/A/AudioUnit (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 52.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.0.0)
AudioToolBox,AudioUnit的结合,将CoreAudio的提供文本到语音服务。
谢谢,但我的意思是如何实现不断接受输入。如果我的程序设置为:int main(){//做输入返回的东西;}我怎么能不让它退出并不断接受输入? – user1000039 2012-07-21 17:30:03
查看修订后的答案 - 这是微不足道的C代码。 – 2012-07-21 17:31:02
啊,太好了。谢谢,这工作 – user1000039 2012-07-21 17:37:49
- 1. 让命令行工具继续运行
- 2. 继续执行DOM命令
- 3. 连续输入命令
- 4. MAC对MP3的“say”命令
- 5. 如何从Linux命令行在C中接受标准输入
- 6. 我的程序想要继续从命令行输入
- 7. 如何批量写入命令行输入到命令中?
- 8. 在Java /硒继续命令
- 9. Catch命令行输入,退出如果输入= x;否则继续
- 10. rsync命令在命令行中最多接受2个参数
- 11. bash继续执行命令失败
- 12. 在下一行继续命令
- 13. PHP:执行命令,然后继续?
- 14. 如何在打开文档后继续向Bash输入命令?
- 15. IE7 javascript命令行工具
- 16. Deflate命令行工具
- 17. AWS命令行工具破:(
- 18. 命令行STL卷工具
- 19. Axis2:wsdl2java工具命令行
- 20. ios SDK命令行工具
- 21. Nessus命令行工具
- 22. 命令行转录工具
- 23. 接受来自命令行的输入C
- 24. 在awk中接受命令行参数
- 25. 接受命令的脚本
- 26. 继续为命令行中的所有输入执行scanf。 C程序
- 27. 从java执行命令行工具因命令行而异?
- 28. 如何执行用户输入的命令作为龟命令?
- 29. 命令行命令命令
- 30. 命令行输入工作不正确
它读取[标准输入](http://en.wikipedia.org/wiki/Standard_streams#Standard_input_.28stdin.29)。 – 2012-07-21 17:25:21