1、puts()
标准设备输出 s
字符串,在输出完成后自动输出一个’\n’
。代码如下,
#include <stdio.h>
#define DEF "code cjavapy"
int main(int argc, char **argv)
{
/*
int puts(const char *s);
参数
s:字符串首地址
返回值
成功:非负数
失败:-1
*/
char str1[30] = "www.cjavapy.com";
const char *str2 = "cjavapy";
puts("hello world");
puts(DEF);
puts(str1);
puts(str2);
return 0;
}
2、fputs()
将 str 所指定的字符串写入到 stream
指定的文件中, 字符串结束符 ‘\0’
不写入文件。代码如下,
#include <stdio.h>
#include <stdlib.h>
int main()
{
/*
int fputs(const char * str, FILE * stream);
参数
str:字符串
stream:文件指针,如果把字符串输出到屏幕,固定写为 stdout
返回值
成功:0
失败:-1
*/
//文件指针初始化
FILE* f;
char ch[100];
//创建写操作的文件
f = fopen("includehelp.txt", "w");
printf("请输入5个字符\n");
for (int i = 0; i < 4; i++) {
scanf("%[^\n]", &ch);
//写入文件
fputs(ch, f);
fputs("\n", f);
//清除stdin流缓冲区
fflush(stdin);
}
scanf("%[^\n]", &ch);
fputs(ch, f);
//写操作结束后关闭文件
fclose(f);
//打开文件
f = fopen("includehelp.txt", "r");
printf("\n...............打印字符串..............\n");
while (!feof(f)) {
//获取字符数组中的前100个字符
fgets(ch, 100, f);
//输出字符串
printf("%s", ch);
}
//关闭文件
fclose(f);
return 0;
}
注意:fputs()
是 puts()
的文件操作版本,但 fputs()
不会自动输出一个’\n’
。
3、puts()和fputs()区别
fputs()
是 puts()
的文件操作版本,fputs()
需要第二个参数来说明要写的文件,与puts()
不同,fputs()
不为输出自动添加换行符与fgets()
一起使用。代码如下,
#include <stdio.h>
int main()
{
char str[80] = "www.cjavapy.com";/*字符串常量存入字符数组 */
char ch[100];
FILE * fp; /*定义文件指针fp*/
//文件指针初始化
FILE* f;
if ((fp = fopen( "strfile", "w" )) == NULL) /*打开文件写模式*/
{
printf("cannot open the file.\n"); /*判断文件是否正常打开*/
}
fputs(str, fp); /*将字符串写入文件*/
fclose(fp); /*关闭文件*/
//打开文件
f = fopen("strfile", "r");
printf("\n...............打印字符串..............\n");
while (!feof(f)) {
//获取字符数组中的前100个字符
fgets(ch, 100, f);
//输出字符串
printf("%s", ch);
}
//关闭文件
fclose(f);
return 0;
}