在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