下面为什么说复制的是关于指针和引用说法正确的是,而不是字符串?

导读:2020 年最新版 68 道Redis面试题,两万字干货,整理分享至此,希望对大家有帮助!文末有PDF文档下载方式,可按需下载。

在读写之前,仍然要先用fopen打开文件

返回值:成功时,返回写入的字符。 如果发生写入错误,则返回EOF并设置错误指示符(ferror)。

返回值:成功时,返回读取的字符(提升为int值)。 返回类型为int,以适应表示失败的特殊值EOF;如果位置指示符在文件末尾,函数返回eof并设置流的EOF指示符(feof)。 如果发生其他读取错误,该函数也会返回EOF,但会设置其错误指示器(ferror)。

(函数在读取结束的时候会返回EOF;正常读取的时候,返回的是读取到的字符的ASCII码值)

所有输出、输入流表示:无论是文件流,还是标准输入输出流都可以,如可以用fputc向标准输出流输出信息

返回值:如果成功,将返回一个非负值。 出错时,该函数返回EOF并设置错误指示器(ferror)。

str:指向一个字符数组的指针,读取的字符串被复制到这个数组中。

num:要复制到str中的最大字符数(包括终止空字符),例如要读取6个字符,只会读取5个,最后一个放\n

stream:指向标识输入流的文件对象的指针。 stdin可以用作从标准输入中读取的参数。

返回值:如果成功,该函数将返回str。 如果在试图读取字符时遇到文件结尾,则设置eof指示符(feof)。如果这发生在任何字符可以被读取之前,那么返回的指针是一个空指针(并且str的内容保持不变)。 如果发生读取错误,则设置错误指示符(ferror)并返回空指针(但str指向的内容可能已经改变)。

(函数在读取结束的时候会返回NULL;正常读取的时候,返回存放字符串的空间起始地址)

可看到fprintf函数比printf函数多了一个指向文件类型的指针,后续参数用法跟printf函数一样,…表示的参数是可变参数;表示把格式化数据写入到流中

返回值:如果成功,将返回写入的字符总数。 如果发生写入错误,将设置错误指示器(ferror ),并返回一个负数。 如果在写入宽字符时出现多字节字符编码错误,errno将设置为EILSEQ,并返回一个负数。

所以fscanf也只是比scanf函数多了个指向文件类型的指针,加上就能用;表示从流中读取格式化内容到指定位置

返回值:如果成功,该函数将返回成功填充的参数列表的项数。由于匹配失败、读取错误或到达文件结尾,此计数可能与预期的项数匹配,也可能小于预期的项数(甚至为零)。 如果在读取时发生读取错误或到达文件结尾,则设置适当的指示器(feof或ferror)。并且,如果在成功读取任何数据之前发生任何一种情况,将返回EOF。 如果解释宽字符时出现编码错误,该函数将errno设置为EILSEQ。

ptr:指向要写入的元素数组的指针,转换为const void*。即要将什么内容写到文件里

size:要写入的每个元素的字节大小。 size_t是一个无符号整型。

count:写入元素的数量,每个元素的大小为字节。

stream:指向指定输出流的文件对象的指针。即向哪个文件写入

返回值:返回成功写入的元素总数。 如果该数字与count参数不同,则是写错误导致函数无法完成。在这种情况下,将为该流设置错误指示器(ferror)。 如果size或count为零,则函数返回零,错误指示器保持不变。

ptr:指向至少(size * count)字节大小的内存块的指针,转换为void。即待读取文件的内容后放到哪里

size:要读取的每个元素的大小,以字节为单位。

count:读取元素的数量,每个元素的大小为字节。

stream:指向指定输入流的文件对象的指针。即向哪个文件读取。

返回值:返回成功读取的元素总数。 如果此数字与count参数不同,则可能是发生了读取错误,或者是在读取时到达了文件结尾。在这两种情况下,都会设置适当的指示器,可以分别使用ferror和feof进行检查。 如果size或count为零,函数返回零,流状态和ptr指向的内容保持不变。

(函数在读取的时候,返回的是实际读取到的完整元素的个数;如果发现读取到的完整的元素的个数小于指定的元素个数,这就是最后一次读取了。)

我要回帖

更多关于 关于指针和引用说法正确的是 的文章

 

随机推荐