缓冲区数组要足够大,装得下一行的内容.示例如下:
#include <stdio.h>int main( void )
{
FILE *stream
char line[100]
if( fopen_s( &stream, "crt_fgets.txt", "r" ) == 0 )
{
if( fgets( line, 100, stream ) == NULL)
printf( "fgets error\n" )
else
printf( "%s", line)
fclose( stream )
}
}
1、fgets和fgetc都是文件函数中的输入函数。其中第fgets是输入一个字符串,而fgetc则是输入一个字符。讲道理输入一个字符是比输入一个字符串快,但是也快不上零点几毫秒。
2、例如:
#include <string.h>#include <stdio.h>
int main(void)
{
FILE *stream
char string[100],c
stream = fopen("fan.txt", "r+") /* 打开一个文本*/
fgets(string,99, stream) /* 读取文本中第一行 */
printf("%s", string) /* 在控制台显示该行文字 */
c = fgetc(stream)//读取文本第二行第一个字符
putchar(c) //在控制台显示该字符
fclose(stream) //关闭文件
return 0
}
3.
如果是读写同样多的字符,fgets应当高一些.
因为它只读一次。即系统只调用一次。
你fgetc一方面加循环,另一方面,系统调用多次。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)