QNX程序的键盘输入与控制台输出


第一个QNX程序已经写完,(见 )测试了QNX应用的开发过程,开始写一些复杂一点点的程序。

最先想到的是获取键盘输入和通过控制台进行输出,这些都是当初学习C语言的时候必做的功课。

和标准的C语言一样,QNX C语言实现也是通过printf()进行控制台输出,通过scanf()获取键盘输入。

printf()在第一个QNX程序中已经使用过了,使用比较简单,第一个参数是要输出的字符串,中间加上%d , %s等格式符,第一个参数后加上格式符等量的变量参数。具体各种格式符的使用就参考《QNX Library Reference》吧,这本pdf书相当于API文档,得随时抱着查。

scanf()被调用后程序会阻塞,等待键盘输入。和printf()类似,scanf()的第一个参数是格式符,后面加格式符等量的变量参数,最后用户输入的内容会按格式符的格式进行转换,转换结果写入各变量中。注意scanf()中的变量参数需要传入变量指针(指针!又见指针!困扰多少人的致命武器呀)。

 

了解scanf()的使用后,创建一个QNX C项目,修改代码如下:

 

修改代码后如之前的博文提到的一样配置运行环境,对程序进行测试,测试结果见上图下半部分“Console”的内容。可以看到虽然在目标机器上测试应用,但是QNX Momentics环境会在console窗口中等待用户输入。

 

测试完上面的程序后觉得不够过瘾,有写了一个根据用户输入的数字输出*号形成三角形的应用,当初学习过C语言的同学们应该很熟悉这样的应用吧,几乎是C语言教材必出的课后练习题。
代码和测试结果如下:

 

学习到这一步就涉及比较多的C语言基础了,之前C语言掌握程度不高的同学们可能需要在这个环节多做一些练习,补一补C语言基础。

基本的是变量定义,数组,分支,各种循环等,稍复杂的是结构,递归等。再有就是烦人的指针:变量的指针,指针变量?数组的指针,指针数组?结构的指针?绕口令一般的概念。。。。

相关内容