一起talk C栗子吧(第一百七十九回:C语言实例--字符和字符串输出函数二)



各位看官们,大家好,上一回中咱们说的是字符和字符串输出函数的例子,这一回咱们继续说该例子。闲

话休提,言归正转。让我们一起talk C栗子吧!



看官们,我们在上一回中介绍了字符和字符串输出函数的用法,満篇都是理论,古语云:纸上得来终觉浅,绝知此事要躬行。这一回中我们要把这些纸上得来理论应用于实践中,让我们一起动手去实践吧。

接下来,我们将通过具体的代码来说明如何使用字符输出函数,以及使用时的注意事项:

int main()
{
    char ch = ‘a‘;
    char *str = "hello world";

    if (EOF == fputc(ch,stdout) )
    {
        puts("fputc running failed");
        return 1;
    }
    fputs("\n",stdout);

    return 0;
}

我们在上面的代码中使用fputc函数向标准输出中输出了一个字符,同时判断该函数运行是否成功,如果函数运行成功,那么输出一个换行符,以方便我们在终端中查看程序运行结果 ;如果函数运行失败,那么在终端中输出错误提示,然后退出程序,结束程序运行。下面是程序的运行结果:

@talk8$ ./test    //在终端中运行编译好的程序
a                 //程序在标准输出,也就是当前终端中输出字符:a
@talk8$           //程序正常结束,返回终端,终端等待其它命令或者程序运行

另外两个字符输出函数:putc和putchar也有同样的功能,我们就不举例子了,请大家自己动手去验证一下,它们是不是和fputc有同样的结果。

介绍完字符输出函数后,我们将通过具体的代码来说明如何使用字符串输出函数,以及使用时的注意事项:

int main()
{
    char *buf[]= {"One","two","three"};
    int index = 0;

    while(index < sizeof(buf)/sizeof(char *) )
    {
        if(0 > fputs(buf[index],stdout) )
        {
            puts("fputs running failed");
            return 1;
        }
        fputs("\n",stdout);   //在这里专门输出换行符

        index++;
    }

    index = 0;
    while(index < sizeof(buf)/sizeof(char *) )
    {
        if(0 > puts(buf[index]) )
        {
            puts("puts running failed");
            return 1;
        }

        index++;    //不需要专门输出换行符
    }

    return 0;
}

下面是程序的运行结果,请大家参考:

One
two
three   //依次使用fputs输出数组中的内容,每行后面的换行符都是专门输出的
One
two
three   //依次使用puts输出数组中的内容,每行后面的换行符是puts输出的

结合上面的代码和程序运行结果,我们可以看到puts在输出字符串的同时可以自动输出换行符,这点比函数fputs要智能一些。当然了尺有所短,寸有所长,在实际的程序中,我们可以依据程序需要选择一个函数来输出字符串。

看官们,我把例子中的代码整理到了一个文件中,并且把该文件放到了我的资源中,大家可以点击这里下载使用。

各位看官,关于字符和字符串输出函数的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解 。


时间: 2024-12-20 02:46:57

一起talk C栗子吧(第一百七十九回:C语言实例--字符和字符串输出函数二)的相关文章

一起talk C栗子吧(第一百六十九回:C语言实例--再谈内置宏)

各位看官们,大家好,上一回中咱们说的是C语言中的布尔–bool类型的例子,这一回咱们说的例子是:再谈内置宏 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在第一百二十四回中介绍了C语言中的内置宏,当时介绍了常用的内置宏_LINE_和_FILE_.并且介绍了如何使用它们来输出它们所在位置的行号和所在的文件名.大家都知道,这两个内置宏经常被用来在文件中添加调试信息.因为我们写的程序难免会有错误,所以需要对程序进行调试.在文件中加入内置宏后,我们通过调试可以快速地找到错误发生在哪个

一起talk C栗子吧(第一百五十九回:C语言实例--基于AF_INET域的数据报套接字通信)

各位看官们,大家好,上一回中咱们说的是基于AF_INET域的流套接字通信的例子,这一回咱们说的例子是:基于AF_INET域的数据报套接字通信 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中一起制作了我们的第三道佳肴是:基于AF_INET域的流套接字通信.今天,我将和大家一起制作第四道佳肴:基于AF_INET域的数据报套接字通信. 制作第四道佳肴的菜谱:数据报套接字过程. 制作第四道佳肴的食材:数据报套接字的接口,套接字属性,套接字地址信息. 看官们,以上的内容,我们

一起talk C栗子吧(第一百七十四回:C语言实例--关闭终端中的缓冲功能二)

各位看官们,大家好,上一回中咱们说的是关闭终端中缓冲功能的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们, 我们在上一回中介绍了如何关闭终端中的缓冲功能,当时是借助系统命令stty实现该功能的,这一回中我们将介绍另外一种关闭终端中回显功能的方法.该方法是通过终端的termios编程接口来操作终端的.关于termios接口的介绍和编程接口,我们在一百七十一回中介绍过了,因此,我们直接介绍如何通过termios编程接口来关闭终端缓冲功能. 下面是详细的操作步

一起talk C栗子吧(第一百七十五回:C语言实例--获取当前终端的行数和列数)

各位看官们,大家好,上一回中咱们说的是关闭终端中缓冲功能的例子,这一回咱们说的例子是:获取当前终端的行数和列数 .闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了termios相关的信息,以及termios提供的编程接口,通过这些接口可以操作终端,今天我们再介绍一些操作终端的编程接口,通过这些接口可以获取当前终端的行数和列数,这便是我们今天的主题. int setupterm(char *term, int fd, int *errret); 该函数用来修改当前

一起talk C栗子吧(第一百六十二回:C语言实例--套接字知识体系图)

各位看官们,大家好,上一回中咱们说的是套接字通信模型的例子,这一回咱们说的例子是:套接字知识体系图.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们, 我们在前面的章回中介绍了许多关于套接字的内容,有些看官感觉知识比较乱,不断地摇头叹气,而且还在吟诗:剪不断,理还乱,是离愁.不对,是套接字.别有一番滋味在心头.哈哈.这位看官太有才了呀,连古诗也用上了.今天我和大家一起整理下套接字的知识,到时候将会是一番喜悦的滋味在心头. 看官们,我们最开始介绍的是套接字的概念,接着介绍了套接字的属性,

一起talk C栗子吧(第一百三十二回:C语言实例--从内存的角度看进程和线程)

各位看官们,大家好,上一回中咱们说的C程序内存布局的例子,这一回咱们说的例子是:从内存的角度看进程和线程.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们刚刚介绍完C程序的内存布局,我们趁热打铁,从内存的角度来分析一下进程和线程. 不管是进程还是线程,他们都会加载到内存中才能运行,因此他们在内存中的布局和其它C程序的内存布局完全相同.进程和线程的内存布局也分为代码区,数据区,堆区和栈区. 对进程来说,父子进程只共享代码区中的内容,父子进程拥有各自的数据区,堆区和栈区.而且它们只能

一起talk C栗子吧(第一百五十二回:C语言实例--计算机中的大小端)

各位看官们,大家好,上一回中咱们说的是socket通信地址的例子,这一回咱们说的例子是:计算机中的大小端 .闲话休提,言归正转.让我们一起talk C栗子吧! 大小端据说来源于小说<格列佛游记>,书中说:人们在争论打开鸡蛋的方式是从鸡蛋的大端还是小端打开鸡蛋.争论不休,甚至还引起了战争.你说说,不管你从哪一端打开鸡蛋,打开的都是鸡蛋呀,这有什么可以争论的呢?还要通过战争来解决.大家不必关注这个争论,如果真想了解其中的细节,可以看看这部小说.不过在计算机中的大小端就不像小说中争论打开鸡蛋那么简单

第一百七十九节,jQuery-UI,知问前端--按钮 UI

jQuery-UI,知问前端--按钮 UI 学习要点: 1.使用 button 按钮 2.修改 button 样式 3.button()方法的属性 4.button('action', param) 5.单选.复选按钮 按钮(button),可以给生硬的原生按钮或者文本提供更多丰富多彩的外观.它不单单 可以设置按钮或文本,还可以设置单选按钮和多选按钮. 一.使用 button 按钮 使用 button 按钮 UI 的时候,不一定必须是 input 按钮形式,普通的文本也可以设置成 button

第三百七十九节,Django+Xadmin打造上线标准的在线教育平台—xadmin的安装

第三百七十九节,Django+Xadmin打造上线标准的在线教育平台-xadmin的安装 xadmin介绍 xadmin是基于Django的admin开发的更完善的后台管理系统