`
peizhiinfo
  • 浏览: 1422213 次
文章分类
社区版块
存档分类
最新评论

fgets()函数

 
阅读更多
为什么要使用fgets()函数?

在C语言,常用的同类函数还有fscan()和gets(),不过这两种函数都有其缺点,或
者可以说是制约性。

fscan()函数不能读取带有空格的字符串,当字符串中含有空格时,函数只能读取
空格之前的字符串,空格之后的全部忽略。

gets()函数虽然可以操做带有空格的字符串,不过容易引起溢出,因为C语言是将
字符串当做一种数组操做的,既然是数组,就有长度,如果gets ()函数读取的字
符串长度大于被赋值数组的长度,就会引起溢出,而且新版的GCC已经不能正确编
译gets()函数了,会报错。

fgets()函数的基本用法为:

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

括号中,第一个参数为将被赋值的数组名,这里需要注意的是,其中不用写数组名
称后面的方括号以及其中的数组长度。

第二个参数是将要读取字符串的长度,这里需要注意的是,这里长度的数值是“字
符串实际长度+1”,加1是因为,字符串最后面还有一个/0位。

最后一个参数为输入设备或者变量。一般情况下,我们都是从键盘输入,也就是
stdin。(从文件读取的这里暂不说明)

OK!现在举一个例子!下面的这段代码作用在于,属于一个字符串,然后计算出字
符串中单词的个数。

#include<stdio.h>
main()
{
char dia[80];
char t,m;
int i=0,num=0,flag=0;
fgets(dia,80,stdin);
fputs(dia,stdout);

for (i=0;dia[i]!=’/0′;i++)
{
if (dia[i]==’ ‘)
flag=0;
else
if (flag==0)
{
flag=1;
num++;
}
}
printf("%d/n",num);
}



这段代码的工作原理是,使用一个用于标示的变量flag,还有一个用于统计单词个
数的变量num。然后逐一读取字符串中的每一个字符,当遇到字母时flag的值为1,
当遇到空格时,flag的值为0。如果遇到一个字母,并且此时flag值为0(说明这个
字母之前的一个字符是空格),给num加1,直到遇到空格时,将flag重新赋值为
0。

在fgets()使用中需要注意,其中第二个参数规定的字符串长度应该与字符串长度
相等,否则运行程序时会有溢出的错误。当输入的字符串大于限定的字符串长度时
(本例中限定的是80),限定长度之后的字符串会被丢弃。


分享到:
评论

相关推荐

    fgets与fputs函数

    fgets函数详解 fgets函数 从流中读一行或指定个字符,  原型是char *fgets(char *s, int n, FILE *stream);  从流中读取n-1个字符,除非读完一行,参数s是来接收字符串,如果成功则返回s的指针,否则返回NULL。...

    c语言fgets fputs 读写文件

    读字符串函数fgets函数的功能是从指定的文件中读一个字符串到字符数组中,函数调用的形式为: fgets(字符数组名,n,文件指针)

    fgets函数用法

    详细描述了fgets函数的用法,该函数可读取文件中的字符串,可供C/CPP开发人员参考。

    fgets函数与fputs函数

    文章简单介绍了fgets函数和fputs函数的应用及不同

    c语言文件读写函数

    字符读写函数:(fgetc和fputc) ...fgets函数:一般格式为:fgets(str,n,fp) 读写数据块函数(fread和fwrite) 一般调用形式为:fread(buffer,size,count,fp) fwrite(buffer,size,count,fp)

    C 语言统计字符个数,可以直接编译使用

    fgets函数用于从键盘获取用户输入的字符串,并存储在名为string的字符数组中。这个函数从标准输入流中读取最多100个字符,直到遇到换行符或EOF为止。运行fgets函数后,用户键入的任何字符都会被保存在string变量中,...

    getchar函数是C语言标准库.pdf

    getchar函数的功能 getchar函数读取到用户输入的字符后,将该字符转换为对应的ASCII码值,并将该值作为返回值返回给调用者。如果读取失败(如文件结束),则返回特殊...如果需要读取整行输入,可以考虑使用fgets函数。

    fputc和fgetc函数使用举例2 C源代码

    fputc和fgetc函数使用举例2 C源代码 //将一个磁盘文件中的信息复制到另一个磁盘文件中。 #include #include void main()

    c语言文件读写操作代码

    程序使用while循环不断读取文件中的数据,直到fgets函数返回NULL,表示已经读取到文件的末尾。最后,程序使用printf函数将读取到的数据输出到控制台,并使用fclose函数关闭文件。 请注意,这只是一个简单的示例程序...

    删除给定字符串中的数字字符,并输出删除数字字符后的字符串

    解题方法是通过遍历字符串,对于每个字符,如果它不是数字字符,则将其复制到新的字符串中,最后在新字符串的末尾添加一个空字符('\0...可以考虑使用fread函数来读取字符串,或者使用fgets函数读取一行字符串后,再使用

    C语言实现凯撒密码加密和解密

    在主函数中,我们首先通过fgets函数获取用户输入的明文或密文,然后通过scanf函数获取用户输入的移位数。接着,我们调用caesar_encrypt函数对明文进行加密,并输出加密结果。最后,我们调用caesar_decrypt函数对密文...

    C语言文件读写操作功能(源码+说明文档).zip

    代码中,我们主要进行了以下操作: ...使用fgets函数循环读取文件中的每一行内容,直到文件末尾。每次读取的内容都存储在buffer数组中,并使用printf函数打印出来。 最后,使用fclose函数关闭文件。

    C语言getchar详细解释和示例

    getchar是C语言中的一个标准库函数,用于从标准输入(通常是键盘)读取一个字符,并返回该字符的ASCII码值。如果读取失败或遇到文件结束符EOF,则返回-1。...如果你想从标准输入中读取一行文本,可以使用fgets函数。

    C语言文件读写操作代码,可以直接编译使用

    这个C语言程序示例了如何在一个语境中实现文件的打开,写入,读取以及关闭操作。...具体执行读取操作是通过fgets函数,该函数从指定的文件中读取一行内容。当文件读取完毕,我们再次调用fclose(fp)函数关闭文件。

    c 文件写入和读取工具类

    然后,代码再次使用fopen函数以读取模式("r")打开同一个文件,并使用fgets函数从文件中读取内容,最后将其打印到控制台。每次操作完成后,都使用fclose函数关闭文件。 适用人群: 该代码示例适合有一定C语言基础...

    C语言通用范例开发金典.part2.rar

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 ...

    C语言通用范例开发金典.part1.rar

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.8 中序遍历二叉树(顺序结构) 169 范例1-62 中序遍历二叉树 169 ∷相关函数:InOrderTraverse函数 1.4.9 中序遍历...

    C 开发金典

    ∷相关函数:Parent函数 LeftChild函数 RightChild函数 LeftSibling函数 RightSibling函数 1.4.7 双亲、孩子和兄弟节点的查询(链式结构) 162 范例1-61 双亲、孩子和兄弟节点的查询 162 ∷相关函数:Parent函数 ...

    文件读写大挑战:C语言专家教你一招搞定!.zip

    c语言文件读写操作代码知识领域:C语言编程 技术关键词:文件IO操作、文件指针、...例如,使用fgetc和fputc函数可以逐个字符地读取和写入文件,而fputs和fgets函数则允许以字符串的形式进行读写。此外,fread和fwrit

Global site tag (gtag.js) - Google Analytics