c、gets()、fgets()

2023-12-11

char s1[100];
char s2[100];
gets(s1);
fgets(s2,sizeof(s2),stdin);
printf("%d,%d\n",strlen(s1),strlen(s2));

运行后,我输入“abcd”两次, 我得到的结果是:4,5这是为什么?


来自gets / fgets手册页:

 The fgets() function reads at most one less than the number of characters
 specified by n from the given stream and stores them in the string s.
 Reading stops when a newline character is found, at end-of-file or error.
 The newline, if any, is retained.  If any characters are read and there
 is no error, a `\0' character is appended to end the string.

 The gets() function is equivalent to fgets() with an infinite n and a
 stream of stdin, except that the newline character (if any) is not stored
 in the string.  It is the caller's responsibility to ensure that the
 input line, if any, is sufficiently short to fit in the string.

fgets保留换行符,即第 5 个字符,但是gets没有。 另外,养成使用的习惯fgets总是,因为在使用时不可能防止缓冲区溢出gets.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c、gets()、fgets() 的相关文章

  • 为什么相同的代码在同一台计算机上的执行时间可能不同?

    我是 C 编程新手 我编写了代码并希望获得它的运行时 这就是我所做的 每次运行代码时 我都会得到不同的运行时值 这样对吗 或者我的代码有问题吗 int main int argc char argv time t start end sta
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 如何读取扩展文件属性/文件元数据

    因此 我按照教程使用 ASP net core 将文件 上传 到本地路径 这是代码 public IActionResult About IList
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 如何访问另一个窗体上的ListView控件

    当单击与 ListView 所在表单不同的表单中的按钮时 我试图填充 ListView 我在 Form1 中创建了一个方法以在 Form2 中使用 并将参数传递给 Form1 中的方法 然后填充 ListView 当我调试时 我得到了传递的
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • .NET中的LinkedList是循环链表吗?

    我需要一个循环链表 所以我想知道是否LinkedList是循环链表吗 每当您想要移动列表中的 下一个 块时 以循环方式使用它的快速解决方案 current current Next current List First 电流在哪里Linke
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 有没有办法强制显示工具提示?

    我有一个验证字段的方法 如果无法验证 该字段将被清除并标记为红色 我还希望在框上方弹出一个工具提示 并向用户显示该值无效的消息 有没有办法做到这一点 并且可以控制工具提示显示的时间 我怎样才能让它自己弹出而不是鼠标悬停时弹出 If the
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • 给定一种颜色的十六进制,如何使该颜色变浅或变深? [复制]

    这个问题在这里已经有答案了 假设我有一个十六进制 例如 5fc9f8 是否有一个函数接受 黑暗级别 10 到 10 并返回反映该级别的十六进制值 我所说的黑暗是指在颜色中添加黑色 删除黑色 import UIKit extension St
  • lxml unicode实体解析问题

    我使用 lxml 来解析从另一个系统导出的 XML 文件 xmldoc open filename etree parse xmldoc 但我得到 lxml etree XMLSyntaxError 实体 eacute 未定义 第 4495
  • 什么是“对于(x:y)”?

    所以我在互联网上查找有关线程的内容 然后我找到了有关线程的博客 教程 但令我困惑的是他使用的这条线 for auto thread threads 不太确定那是做什么的这是我正在谈论的博客的链接LINK感谢为我回答这个问题的人PS你能给我一
  • 如何使用 jQuery 通过 Ajax 使用 Google 翻译?

    我在用Ajax通过 jQuery 我正在尝试使用谷歌翻译服务 该服务似乎不适合我 我究竟做错了什么 我将如何在我的网络应用程序中使用它 你可以这样做 ajax url https ajax googleapis com ajax servi
  • 如何从 main() 返回大于 8 位的数字?

    据我所知 退出代码从返回r0仅使用该寄存器的最低 8 位 如何返回高于 8 位的值 这是 ARMv7 代码 looping s calculates sum of integers from 1 to 100 text balign 4 g
  • Azure 间接对等互连

    假设我的对等互连设置如下 ABC 并且希望在 vnet A 和 C 之间路由流量 目前这可能吗 也许 B 中的 vnet 网关和 UDR 的使用 Thanks 目前来看 这是不可能的 VNet 对等互连位于两个虚拟网络之间 不存在派生的传递
  • Symfony2 身份验证“login_check”路径未找到

    我是 Symfony2 的新手 我正在尝试创建一个基本的注册 登录系统 因此 在 Symfony2 文档的帮助下 我创建了这个 security yml security encoders TestCompany InternetBundl
  • Angular 数据表中的自定义加载

    我试图在角度数据表中实现我的自定义加载 我检查了文档 https l lin github io angular datatables overrideLoadingTpl 建议实施 angular module showcase data
  • 从标准输入读取数组,忽略括号和逗号

    我的代码的示例输入是 1 2 3 4 我希望忽略大括号和逗号 并将数字读入数组 我怎样才能做到这一点 嗯 这可能有用 Ignore all characters up to and including the open curly brac
  • 如何在php中的echo中连接if语句? [复制]

    这个问题在这里已经有答案了 是否可以在 php 的 echo 中连接 if 语句 如何将一些基于条件的 html 附加到 echo 内的 html 类似如下 它会对你有所帮助 尝试这个
  • TLD 优先的类域标识符有何意义?

    TLD first 类域标识符 虽然拗口 但这就是我能想到的全部 多年来我在不同的地方看到过这些用法 并且想知道这个约定背后的历史 原因是什么 因为您可能会认为有一种真正的方式来提及域 我不使用 Java 但我通过探索发现命名空间通常是这样
  • 在xcode中添加不同的图像到不同的注释视图

    我试图将不同的图像添加到不同的注释视图中 换句话说 我想要一张独特的图片对应于每个独特的引脚 这是我正在尝试的 MKAnnotationView mapView MKMapView mapView viewForAnnotation id
  • 在 Python 中使用 Selenium 下载 Chrome 无头文件

    在无头模式下 Chrome 默认禁止文件下载 然而 最近他们在 DevTools 中添加了一个选项来启用此行为 https chromedevtools github io devtools protocol tot Page method
  • AFHTTPRequestOperationManager 的子类?

    我发现自己重复了很多代码AFHTTPRequestOperationManager在我的代码中 所以我正在考虑对其进行子类化 这样我就可以将其设置为单例 并将所有代码放入子类中 而不是将其分散到我的项目中 然而 在 AFNetworking
  • 如何将滑块添加到 QMenu 中?

    我的上下文菜单有很多项目 我需要一个滑块来控制它 但我没有找到任何功能可以做到这一点 我该怎么办 从 Stack Overflow 上的另一个帖子中 我发现了这个技巧 submenu gt setStyleSheet QMenu menu
  • 禁用 GCC 中特定循环的展开

    我有以下 4x4 矩阵向量乘法代码 double const restrict a 16 double const restrict x 4 double restrict y 4 pragma GCC unroll 1 does not
  • 如何计算两个补丁之间的距离?

    我需要找到代理前面的补丁与某个补丁 目标 之间的最小距离 以便选择能够创建最佳 最短 路径的补丁 原始的distance仅需要一个参数 因此我无法按原样使用该函数 The distance原语只需要一个参数 是的 但它是一个 补丁或海龟原语
  • 删除Python列表中重复的字典

    我有一个字典列表 我想删除具有相同键和值对的字典 对于此列表 a 123 b 123 a 123 我想退掉这个 a 123 b 123 另一个例子 对于此列表 a 123 b 1234 a 3222 b 1234 a 123 b 1234
  • %40 在 Jmeter 中没有被解码为 @

    我正在尝试使用 Jmeter 工具进行负载测试 其中我通过 csv 文件提供数据 该文件包含用于登录请求的所有电子邮件和密码 但是在传递参数时 Jmeter 用 40 对 符号进行编码 如果我在 csv 中用 40 代替 它不会在 Jmet
  • c、gets()、fgets()

    char s1 100 char s2 100 gets s1 fgets s2 sizeof s2 stdin printf d d n strlen s1 strlen s2 运行后 我输入 abcd 两次 我得到的结果是 4 5这是为