C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了fgets和fscanf之间的区别?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我对C中的fgets和fscanf有疑问.这两者之间到底有什么区别?例如:
char str[10];
while(fgets(str,10,ptr))
{
counter++;
...

和第二个例子:

char str[10];
while(fscanf(ptr,"%s",str))
{
counter++;
...

当有一个包含由空格分隔的字符串的文本文件时,例如:AB1234 AC5423 AS1433.在第一个示例中,while循环中的“counter”将不会提供与第二个示例中相同的输出.当更改fgets函数中的“10”时,计数器将始终给出不同的结果.这是什么原因?
还有人可以解释一下fscanf究竟做了什么,每个while循环中的字符串有多长?

解决方法

函数fgets读取直到换行符(并且还存储它).带有%s说明符的fscanf读取直到任何空格并且不存储它

作为旁注,您没有在scanf中指定缓冲区的大小,并且它不安全.尝试:

fscanf(ptr,"%9s",str)

大佬总结

以上是大佬教程为你收集整理的fgets和fscanf之间的区别?全部内容,希望文章能够帮你解决fgets和fscanf之间的区别?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。