上篇文章我们讲解了​​C语言中fgetc()、fgets()之间的区别​

接下来我在来讲解下fputc() 和 fputs() 之间的区别

1.fputc 是 file output char 的所以,意思是向指定的文件中写入一个字符。

fputc() 的用法为:


int fputc ( int ch, FILE *fp );


ch 为要写入的字符,fp 为文件指针。fputc() 写入成功时返回写入的字符,失败时返回 EOF,返回值类型为 int 也是为了容纳这个负数。例如:  fputc('a', fp);  或者:char ch = 'a'; fputc(ch, fp);

表示把字符 'a' 写入fp所指向的文件中。

两点说明

1) 被写入的文件可以用写、读写、追加方式打开,用写或读写方式打开一个已存在的文件时将清除原有的文件内容,并将写入的字符放在文件开头。如需保留原有文件内容,并把写入的字符放在文件末尾,就必须以追加方式打开文件。不管以何种方式打开,被写入的文件若不存在时则创建该文件。
2) 每写入一个字符,文件内部位置指针向后移动一个字节。

#include<stdio.h>
int main(){
FILE *fp;
char ch;
//判断文件是否成功打开
if( (fp=fopen("D:\\demo.txt","wt+")) == NULL ){
puts("Fail to open file!");
exit(0);
}
printf("Input a string:\n");
//每次从键盘读取一个字符并写入文件
while ( (ch=getchar()) != '\n' ){
fputc(ch,fp);
}
fclose(fp);
return 0;
}

2.fputs() 函数用来向指定的文件写入一个字符串,它的用法为:


int fputs( char *str, FILE *fp );


str 为要写入的字符串,fp 为文件指针。写入成功返回非负数,失败返回 EOF。例如:

char *str = "http://c.biancheng.net";
FILE *fp = fopen("D:\\demo.txt", "at+");
fputs(str, fp);

表示把把字符串 str 写入到 D:\\demo.txt 文件中。

【示例】向上例中建立的 d:\\demo.txt 文件中追加一个字符串。

#include<stdio.h>
int main(){
FILE *fp;
char str[102] = {0}, strTemp[100];
if( (fp=fopen("D:\\demo.txt", "at+")) == NULL ){
puts("Fail to open file!");
exit(0);
}
printf("Input a string:");
gets(strTemp);
strcat(str, "\n");
strcat(str, strTemp);
fputs(str, fp);
fclose(fp);
return 0;
}

运行程序,输入​​C C++ Java​​,打开 D:\\demo.txt,文件内容为:

C语言fputc() 和 fputs() 之间的区别_文件指针