puts和fputs函数及其区别,C语言puts和fputs函数详解

  • 内容
  • 评论
  • 相关

与 gets 函数一样,对于 puts 函数,同样建议使用 fputs 函数来代替 puts 函数。如下面的示例代码所示:

int main(void)
{
    char buffer[11];
    fgets(buffer,11,stdin);
    fputs(buffer,stdout);
    return 0;
}

其中,puts 函数的原型如下所示:

int puts(const char *str);

我们知道,puts 函数主要用于向标准输出设备(屏幕)写入字符串并换行,即自动写一个换行符('\n')到标准输出。理论上,该函数的作用与“printf("%s\n",str);”语句相同。但是,puts 函数只能输出字符串,不能进行相关的格式变换。与此同时,它需要遇到 null('\0') 字符才停止输出。因此,非字符串或无 null('\0') 字符的字符数组最好不要使用该函数打印,否则无法正常结束。如下面的代码所示:

int main(void)
{
    char str[] = {'H','E','L','L','O'};
    puts(str);
    return 0;
}

在上面的示例代码中,因为字符数组 str 在结尾处缺少一个 null('\0') 字符(也就是说它不是一个严格意义上的字符串)。因此,在调用 puts 函数的时候,程序将不知道什么时候停止输出,从而导致输出结果未定义。运行结果如下图所示:



图 1 示例代码的运行结果(Microsoft Visual Studio 2010)

本文标题:puts和fputs函数及其区别,C语言puts和fputs函数详解

本文地址:https://www.hosteonscn.com/2793.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注