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; }