http://baike.baidu.com/link?url=3-JkuJHtb6I1sWhLGxDAlTc9pZCduEZY0xRjcg2dLtwjN9E_2JR3p2p9kAEWL620
函数名: fputs
功 能:向指定的文件写入一个字符串(不自动写入字符串结束标记符‘\0’)。成功写入一个字符串后,文件的位置指针会自动后移,函数返回为一个非负整数;否则返回EOF(符号常量,其值为-1)。
用 法: int fputs(char *str, FILE *fp);
fp是文件型指针,通过打开文件函数fopen()获得的。
程序例:( 实现的功能将一字符串写入文件“strfile”)
#include <stdio.h>
main()
{
char str[80]="I/O system."; / *字符串常量存入字符数组*/
FILE *fp; /*定义文件指针fp*/
if((fp=fopen("strfile","w"))==NULL) /*打开文件写模式*/
{
printf("cannot open the file.\n") /*判断文件是否正常打开*/
exit(0);
}
fputs(str,fp); /*将字符串写入文件*/
fclose(fp); /*关闭文件*/
return ;
}
函数原型:char *fgets(char *buf, int bufsize, FILE *stream);
参数:
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明buf指向的字符数组的大小。
*stream: 文件结构体指针,将要读取的文件流。
例:
如果一个文件的当前位置的文本如下
Love, I Have
Since you can do it.
如果用fgets(str1,6,file1);去读取
则执行后str1 = "Love," ,读取了6-1=5个字符
这个时候再执行fgets(str1,20,file1)则执行后str1 = " I Have\n"
而如果
fgets(str1,23,file1);
则执行str1="Love ,I Have",读取了一行(包括行尾的'\n',并自动加上字符串结束符'\0'),当前文件位置移至下一行,虽然23大于当前行上字符总和,可是不会继续到下一行。而下一次调用fgets()继续读取的时候是从下一行开始读。
ssize_t getline(char **lineptr, size_t *n, FILE *stream);
3返回值
成功:返回读取的字节数。
失败:返回-1。
参数:
lineptr:指向存放该行字符的指针,如果是NULL,则有系统帮助malloc,请在使用完成后free释放。
n:如果是由系统malloc的指针,请填0
stream:文件描述符
int main()
{
FILE* fp;
fp = fopen("ftp/user.txt", "r");
if( NULL == fp )
{
perror("");
exit(EXIT_FAILURE);
}
char* line=NULL;
size_t len = 0;
ssize_t read=0;
while((read =getline(&line, &len, fp)) != -1)
{
printf("%s\n", line);
}
if(line)
{
free(line);
}
return EXIT_SUCCESS;
}