文章目录
- 1 函数原型
- 2 参数
- 3 返回值
- 4 比较
- 5 示例
- 5.1 示例1
- 5.2 示例2
- 5.3 示例3
1 函数原型
fputc():将一个字符发送至指定流stream,函数原型如下:
int fputc(int c, FILE *stream);
2 参数
fputc()函数有两个参数c和stream:
- 参数c是待输出字符的ASCII码值或字符常量,类型为int型;
- 参数stream是一个指向FILE类型结构的指针;stream指定了fputc()函数要写入的流,可以是文件流,也可以是标准输出流;当是文件流时,stream等于fopen()函数的返回值;当是标准输出流时,stream等于stdout。
3 返回值
fputc()函数的返回值类型为int型:
- 输出成功,返回参数c的值;
- 输出失败,返回EOF。
C语言标准描述如下:
1. Each of these functions returns the character written. For fputc and _fputchar, a return value of EOF indicates an error.
4 比较
fputc()函数和putchar()函数的工作原理类似,差异如下:
- fputc()函数将字符发送到指定流stream;
- putchar()函数将字符发送到标准输出流stdout;
- 将fputc()函数的参数stream指定为stdout,则fputc()函数的功能和putchar()函数的功能完全相同。
5 示例
5.1 示例1
以ASCII码值和字符常量的形式输出单个字符,代码如下所示:
int main()
{FILE* fp;if ((fp = fopen("1.txt", "w")) == NULL){printf("Failed to open file\n");exit(1);}char str1[] = { 97, 98, 99, 100, 101, 102 };char str2[] = { 'a', 'b', 'c', 'e', 'e', 'f' };int i = 0;for (i = 0; i < 6; i++){fputc(str1[i], fp);}fputc('\n', fp);for (i = 0; i < 6; i++){fputc(str2[i], fp);}fclose(fp);return 0;
}
代码运行结果如下图所示:
5.2 示例2
从键盘读取字符串"hello world"并打印,代码如下所示:
int main()
{while ((fputc(getchar(),stdout)) != '\n');return 0;
}
代码运行结果如下图所示:
5.3 示例3
从字符数组读取字符串"hello world"并写文件,代码如下所示:
int main()
{FILE* fp;if ((fp = fopen("2.txt", "w")) == NULL){printf("Failed to open file\n");exit(1);}char str[] = "hello world";int i = 0;while (1){if (str[i] == '\0'){break;}else{fputc(str[i], fp); }i++;}fclose(fp);return 0;
}
代码运行结果如下图所示: