百度
360搜索
搜狗搜索

fgets函数怎么用,fgets函数用法详细介绍

本文目录一览: C语言里fgets函数怎么用?

fgets(由文件中读取一字符串)
  表头文件
  include

  定义函数

  char * fgets(char * s,int size,FILE * stream);

  函数说明

  fgets()用来从参数stream所指的文件内读入字符并存到参数s所指的内存空间,直到出现换行字符、读到文件尾或是已读了size-1个字符为止,最后会加上NULL作为字符串结束。

  返回值

  gets()若成功则返回s指针,返回NULL则表示有错误发生。

  范例

  #include

  main()

  {

  char s[80];

  fputs(fgets(s,80,stdin),stdout);

  }

  执行

  this is a test /*输入*/

  this is a test /*输出*/

fgets函数用法

fgets函数功能为从指定的流中读取数据,每次读取一行。其原型为:char *fgets(char *str, int n, FILE *stream);从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。
扩展资料:
一、函数原型是:char *fgets(char *s, int n, FILE *stream);
从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize-1个字符,则读完该行就结束。
如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。
函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。
二、与gets相比使用这个好处是:读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积导致的缓存溢出问题。
三、功能:
1、《UNIX 环境高级编程》中指出,每次调用fgets函数会造成标准输出设备自动刷清!案例详见《UNIX环境高级编程(第二版)》中程序清单1-5和课后习题5.7,习题5.7的答案中给出了相关的论述。
2、初入门者,大多数是在WINDOWS下,使用VS进行练习的。此环境下,对注意1中的情况进行测试,并不能看到案例中所描述的情景,因为具体的实现不同。

fget函数怎么用。菜鸟请教。。。

fgets函数用来从文件中读入字符串。fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。函数的功能是从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。因此,确切地说,调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加'\0',并以str作为函数值返回。

linux中fgets函数怎么用

fgets函数是从输入流中读取一个字符串,它是遇到换行符,或者传输了限定的字符数量,或者遇到EOF文件尾就停止(它会把换行符也加到接收字符串里面)。fgets函数的原型是:
char *fgets(char *s, int n, FILE *stream);
函数参数说明:第一个参数是接收参数,用于接收输入文件流的字符串,第二个参数n是字符串传输长度限定参数,表示当接收了n-1个字符时停止写入,第三个参数是文件流(就是fopen函数返回的文件流),也可以是输入流stdin。使用这个函数需要include头文件



fgets函数和scanf的%s参数的区别是:scanf接收输入字符串时,是遇到空白字符就停止,而且scanf无法限定接收字符串的长度。

c语言中的fgets函数。

从流中读一行或指定个字符,
原型是char*fgets(char*s,intn,file*stream);
从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回null。
形参注释:*string结果数据的首地址;n-1:一次读入数据块的长度,其默认值为1k,即1024;stream文件指针
fgets的返回值是个指针,*fgets(buffer,100,stdin)就是取返回指针所指向地址的第一个字符,fgets的返回值是char*.要是输入一串字符,返回的第一字符一定不是\n如果要是一个空行,第一个一定是\n,所以会推出循环,如果while中的两个条件都满足,就会进入循环继续计算
函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为:
fgets(字符数组名,n,文件指针);
其中的n是一个正整数。表示从文件中读出的字符串不超过
n-1个字符。在读入的最后一个字符后加上串结束标志'\0'。
1)
在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。
2)
fgets函数也有返回值,其返回值是字符数组的首地址。

这里是特殊情况。
initial这个数组长度只有2,
读进来一个数据就满了(因为第二个位置要写0呢。
所以后面的回车没被读进来,因为缓冲区满了。
fgets()函数用于从文件流中读取一行或指定个数的字符,其原型为:
char
*
fgets(char
*
string,
int
size,
FILE
*
stream);
参数说明:
string为一个字符数组,用来保存读取到的字符。
size为要读取的字符的个数。如果该行字符数大于size-1,则读到
size-1
个字符时结束,并在最后补充'
\0';如果该行字符数小于等于
size-1,则读取所有字符,并在最后补充
'\0'。即,每次最多读取
size-1
个字符。
stream为文件流指针。
【返回值】读取成功,返回读取到的字符串,即string;失败或读到文件结尾返回NULL。因此我们不能直接通过fgets()的返回值来判断函数是否是出错而终止的,应该借助feof()函数或者ferror()函数来判断。
注意:fgets()与gets()不一样,不仅仅是因为gets()函数只有一个参数
FILE
*stream,更重要的是,fgets()可以指定最大读取的字符串的个数,杜绝了gets()使用不当造成缓存溢出的问题。

关于C语言中字符串处理函数fgets的用法

fgets(str1,11,stdin); -- fgets 从文件输入流读取一行字符串(分隔符是换行键),包括空白到 str1 里。stdin 表示标准输入流,就是键盘输入。11 (实际上用10) 是 最多读入的字符个数。
当一行(含'\n') 不足11个字符 时,读到 '\n',包括 '\n' ,放入str1
当一行超过10个字符时,只读10个字符,放入str1。
照理你应当声明:
char str1[11] ,str2[11]; 而不是 [10].
---------
当你拍入 1234567890ABCDEFG,这串东西进了 输入缓冲区
fgets(str1 。。)到 输入缓冲区 用去了 1234567890, 还余下 ABCDEFG
fgets(str2 。。)接着 到 输入缓冲区,从余下的东西里 取数。打算 取 11 (实际上用10)个字符,但遇到了 Enter 键,所以 读入的内容是 ABCDEFG
输出语句就不用说了。
fgets(char* s, int size, FILE* stream) :
最多在stream中读取size-1个字符存入s指向的缓冲区。
遇到EOF(文件结束符)或'\n'结束,('\n'放入s中)
并在末尾加个\0。
fgets(str1,11,stdin); -- fgets 从文件输入流读取一行字符串(分隔符是换行键),包括空白到 str1 里。stdin 表示标准输入流,就是键盘输入。11 (实际上用10) 是 最多读入的字符个数。
当一行(含'\n') 不足11个字符 时,读到 '\n',包括 '\n' ,放入str1
当一行超过10个字符时,只读10个字符,放入str1。
照理你应当声明:
char str1[11] ,str2[11]; 而不是 [10].
---------
当你拍入 1234567890ABCDEFG,这串东西进了 输入缓冲区
fgets(str1 。。)到 输入缓冲区 用去了 1234567890, 还余下 ABCDEFG
fgets(str2 。。)接着 到 输入缓冲区,从余下的东西里 取数。打算 取 11 (实际上用10)个字符,但遇到了 Enter 键,所以 读入的内容是 ABCDEFG
输出语句就不用说了。

C语言 怎么用fgets()读取一个txt文件中的任意行的信息

#include "stdio.h"
#include "string.h"
void main()
{
int n;
FILE *fin;
char s[25];
fin=fopen("c:\\a.txt","r");
fgets(s,25,fin);/*用fgets读第一行到数组s中*/
n=strlen(s);
fseek(fin,n+1,SEEK_SET);/*将文件指针移到下一行*/
fgets(s,25,fin);/*读取第二行的字符串*/
printf("%s",s);
}
这个是我写的一个,如果你想读到第n行的话,用一个for循环控制使文件指针移到第n行就行了。
如果使用fgets()读取某个文件,第一次读取的bufsize为5,而文件的第一行有10个字符(算上’\n’),那么读取文件的指针会偏移至当前读取完的这个字符之后的位置。也就是第二次再用fgets()读取文件的时候,则会继续读取其后的字符。
如果使用fgets() 读取文件的时候bufsize大于该行的字符总数加2(多出来的两个,一个保存文件本身的’\n’换行,一个保存字符串本身的结束标识’\0’),文件并不会继续读下去,仅仅只是这一行读取完,随后指向文件的指针会自动偏移至下一行。
哥哥帮你写一个给你参考!
键盘输入一个数字代表你要读的行,你爱读哪行就哪行!
#include

#include

阅读更多 >>>  指针函数怎么调用,求指针函数的使用!!

#include

int main(void)

{

FILE *fp = NULL;

char buf[1024] = {0};

int count = 0;

int row = 0;

int ch = 0;

fp = fopen("test.txt", "r");

if (fp == NULL)

{

printf("Cann't open the file!\n");

exit(1);

}

else

{

while (1)

{

printf("Input a row you want to read: \n");

scanf("%d", &row);

fflush(stdin);

while (!feof(fp))

{

fgets(buf, 1024, fp);

count++;

if (row == count)

{

printf("%s", buf);

}

memset(buf, 0, sizeof(buf));

}

count = 0;

rewind(fp);

printf("go on? [y/n]: ");

scanf("%c", &ch);

fflush(stdin);

if (ch == 'y' || ch == 'Y')

{

continue;

}

else

{

break;

}

}

fclose(fp);

}

return 0;

}

首先定义文件指针 fp=fopen("文件名称","r");然后用fseek()设置文件指针的位置;最后用fgets()得到行信息;

int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。

fgets()函数原型char *fgets(char *buf, int bufsize, FILE *stream);参数*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。*stream: 文件结构体指针,将要读取的文件流。

怎么用fgets 函数把输入的字符串输出到屏幕

这个函数用来输入字符串的,输出到屏幕可以用puts(str)来实现的。
fgets ()是输入字符到程序中,要输出应该用printf()之类的输出函数才可以。
#include

#define BUFFER_SIZE 1000int main(){ char buffer[BUFFER_SIZE]; fgets(buffer, BUFFER_SIZE, stdin); /* stdin指向输入流 */ printf("%s\n", buffer); return 0;}BUFFER_SIZE是缓冲区的大小,可以自己改

c语言fgets里怎么换行

比较简单的方法你可以在需要换行的,用特殊字符来替代文本中的的换行符,比如说是QWE^TY(不一定是^,总之是你不会用到的字符就行了),之后读取之后,再把^替换为\n就行了。
fgets函数功能为从指定的流中读取数据,每次读取一行。其原型为:char *fgets(char *str, int n, FILE *stream);从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止。楼主没有说清具体要执行的规则,只有一个例子。如果是固定的第一行以及从此行中截取前三个字符为一行,这就比较容易处理。下面是程序的代码和文件内容以及运行截图:#includeint main(){ FILE *fp; char s[300]; fp=fopen("test.txt","r"); fgets(s,4,fp); printf("%s\n",s); while(!feof(fp)) { fgets(s,300,fp); printf("%s",s); } return 0;}

网站数据信息

"fgets函数怎么用,fgets函数用法"浏览人数已经达到20次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:fgets函数怎么用,fgets函数用法的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!