fgets()函数怎样用C++实现?

#define BUFLEN 256
static char lineBuf[BUFLEN];
fgets(lineBuf,BUFLEN-1,source)
上面的这个函数用C++如何实现,就是从source文件读取指定长度字符串,直接source>>lineBuf应该是不行吧。

慕村9548890
浏览 715回答 2
2回答

撒科打诨

#include <fstream>#define&nbsp;BUFLEN 256static char lineBuf[BUFLEN];ifstream&nbsp;file_in("source 文件的位置",ios::in);file_in.getline(lineBuf,BUFLEN,'\n');这个函数意思是读入BUFLEN个字节到lineBuf,如果在读入BUFLEN个字节之前,遇上了换行符(这个换行符可以换成你想中止读入的字符,如变成‘A’,则在读入 A之前会中止,默认情况是‘\n';

繁华开满天机

fgets 既可以读文件,又可以读标准输入,而且可以防止溢出。但是它只能输入字符串(且能读到回车符/n),故而用scanf语句的较多。scanf语句可以输入各种格式的数据,其功能较为强大。fgets 的使用方法:char *fgets(char *string, int n,&nbsp;FILE&nbsp;*stream)从文件stream中读取n-1个字符/一行(若一行不满n-1个),string接收字符串如果n <= 0,返回NULL如果n == 1,返回" ",也就是一个空串如果成功,返回值等于string, 也就是获得字符串的首地址如果出错,或者读到FILE的结尾,返回NULL//通过while循环一行行取,读到文件末尾就是NULL了 ----读取整个文件#include <stdio.h>void main( void ){FILE *stream;char line[100];if( (stream = fopen( "file.txt", "r" )) != NULL ){while( fgets( line, 100, stream ) != NULL)printf( "%s", line);fclose( stream );}}
打开App,查看更多内容
随时随地看视频慕课网APP