使用 getchar() 输入字符串

2023-12-26

以下代码使用 getchar() 接受一行输入。

#include <stdio.h>
#include <stdlib.h>

int main()
{
 char *rawString = (char *)malloc(200*sizeof(char));
 char *rawStringInitial = rawString;
 char c;
 c=getchar();
 while(c!='\n')
 {
  *rawString=c;
  rawString++;
  c=getchar();
 }
 *rawString='\0';
 printf("\n[%s]\n",rawStringInitial);
 return(0);
}

打字时,如果我按退格键, getchar() 是否也应该接收它并存储在 rawString 指向的位置?然而,输出只是显示最终的字符串,没有任何特殊字符。有人可以解释为什么吗?


标准输入(通常)是缓冲的;像退格键这样的非打印字符由终端服务器处理,像这样的库函数getchar()永远不会见到他们。

如果您需要读取原始击键,那么您将需要使用 C 标准库之外的东西。

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

使用 getchar() 输入字符串 的相关文章

  • Unity3D StartCoroutine 调用一个函数,该函数什么时候返回?

    我知道Unity3D StartCoroutine调用了一个与StartCoroutine在同一线程上运行的函数 但是被调用的函数什么时候返回到原始调用者 我在互联网上查找了一个很好的 Unity3D Coroutine 示例 但找不到完整
  • 以相反的顺序迭代可变参数模板参数

    如果我手动反转传递给它的模板参数的顺序 以下代码将起作用 template
  • 为什么opencv videowriter这么慢?

    你好 stackoverflow 社区 我有一个棘手的问题 我需要你的帮助来了解这里发生了什么 我的程序从视频采集卡 Blackmagic 捕获帧 到目前为止 它工作得很好 同时我用 opencv cv imshow 显示捕获的图像 它也工
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 如何使用汇编获取BIOS时间?

    我正在从头开始实现一个小型操作系统 用于教育目的 现在 我想使用汇编来获取 BIOS 时间 我对此进行了很多搜索 但找不到任何代码示例来执行此操作 如果有人可以提供任何参考或代码示例或与此相关的任何内容 我将非常感激 See 时钟中断 1a
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • C# 中附加/分离事件处理程序的不同方式有什么区别

    我的问题有两个部分 首先 我们可以通过以下两种方式附加事件处理程序 myObject MyEvent new EventHandler MyHandler myObject MyEvent MyHandler 据我了解 这两者是等价的 在第
  • 通过引用传递时取消引用指针

    当通过引用传递给函数时取消引用指针时会发生什么 这是一个简单的例子 int returnSame int example return example int main int inum 3 int pinum inum std cout
  • 为什么假设 send 可能返回的数据少于在阻塞套接字上传输的请求数据?

    在流套接字上发送数据的标准方法始终是调用 send 并写入一大块数据 检查返回值以查看是否发送了所有数据 然后再次调用 send 直到整个消息被接受 例如 这是一个常见方案的简单示例 int send all int sock unsign
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • 在通过网络发送之前压缩位图

    我正在尝试通过网络发送位图屏幕截图 因此我需要在发送之前对其进行压缩 有一个库或方法可以做到这一点吗 当您将图像保存到流时 您have选择一种格式 几乎所有位图格式 bmp gif jpg png 都使用一种或多种压缩形式 因此 只需选择适
  • 将成员函数作为参数传递/c++

    我想用 C 实现一个类b可以通过封装该迭代器类型的成员集进行某种迭代 喜欢 b object for each x do function f so 函数 f会得到每个人的x成员并做任何事情 比方说 void function f x me
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 你能解释一下这个C++删除问题吗?

    我有以下代码 std string F WideString ws GetMyWideString std string ret StringUtils ConvertWideStringToUTF8 ws ret return ret W
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • 以编程方式从 XSD 创建 XML 文件

    我有一个 XSD 文件 我想在运行时基于 XSD 创建一个 XML 文件 我的问题基本上与this one https stackoverflow com questions 307616 xml instance generation f
  • ASP.NET 自动完成下拉列表

    是否有用于 asp net 自动完成 DropDownList 的控件或 Jquery 插件 如果是 请在此处链接示例 我不想使用asp net ajax控制工具包 我不知道这是否是您要找的内容 但这里有一个类似 Facebook 的不错的
  • 在图像 {graphics} 中添加颜色图例

    在这个例子中 我有一个带有颜色的图像 我想知道我们是否可以添加颜色图例 例如 点与z in 8 10 颜色有红色等 x runif 500 0 5 y runif 500 0 5 z floor runif 500 1 10 xyz dat
  • 未找到 AWS CodeDeploy 命令

    尝试部署 Node js 应用程序时出现错误npm command not found in my post install sh安装后脚本 最奇怪的是我运行的 BeforeInstall 脚本npm install g pm2它工作得很好
  • 在 NTFS 中搜索文件

    我们有一个相当大的磁盘阵列 上面大约有 2 3 百万个 XML 文件 磁盘采用 NTFS 格式 我们想使用通配符搜索文件系统 因此 像 SomePartOfTheFilename 这样的内容将是典型的搜索查询 我们正在使用 Net 并且发现
  • React-选择清除值,同时保留过滤器

    我正在开发一个权限系统 让用户控制谁可以访问 评论 编辑资源 就像您在 Google 云端硬盘上找到的资源一样 我正在使用 React Select multi 让资源所有者选择他想要授予资源访问权限的用户 当我单击反应选择显示的选项时 我
  • Android 中的隐式意图与显式意图(startActivity(intent) 崩溃)

    我是这个世界的新人 我在使用 startActivity intent 时遇到问题 这是清单
  • 按下时更改按钮主题

    我试图在按下按钮时更改按钮的数据主题 我在按钮的 onClick 处理程序中调用此 JavaScript 函数 function changeNextButtonColor var nextButton document getElemen
  • 在另一个类中使用 JSONArray?

    我有一个微调器 可以在下拉列表中加载客户的姓名 微调器从 JSON 数组获取字符串 我还有一些文本视图 当旋转器选择更改时 应加载所选客户的姓名 地址 电话号码 但是 JSONArray 在另一个类中使用 我如何在另一个类中使用 JSONA
  • 在 Visual Studio 2015 中显示单元测试的描述属性

    有谁知道如何在 Visual Studio 2015 测试运行期间显示描述属性 例如给出这个测试 TestMethod TestCategory With Fakes Description Posting a blog entry wit
  • TIME-WAIT刺杀和SO_REUSEADDR有什么区别

    我正在阅读有关使用 SO LINGER 套接字选项通过将逗留时间设置为零来有意 暗杀 时间等待状态的内容 该书的作者接着说我们永远不应该这样做 并且一般来说我们永远不应该干扰时间等待状态 然后他立即建议使用 SO REUSEADDR 选项来
  • 改造通用服务接口

    我正在为 Retrofit 创建一个通用 API 层 这是我的服务类别 public interface ApiService POST api authenticate Call
  • Firefox 上奇怪的蓝色边框

    请看一下这段代码 http www jsfiddle net tt13 5CxPr 21 http www jsfiddle net tt13 5CxPr 21 On Firefox it shows strange blue border
  • 在特定年份 Pandas 之后删除行

    我的数据框中有一列 其中包含以下格式的年份 2018 19 2017 18 年份是对象数据类型 我想将此列的类型更改为日期时间 然后删除 1979 80 之前的所有行 但是 我尝试这样做 但出现了格式错误 这样做的正确或更好的方法是什么 B
  • JavaScript 中判断某物是否为普通对象的方法

    我最近偶然发现了这个函数 它可以确定某个东西是否是普通对象 JavaScript function isPlainObject value if typeof value object value null return false let
  • Visual Studio:使用一个宏进行清理和重建

    我正在尝试通过创建一些宏来优化 VS 的工作 目前我有以下宏 Public Sub ReleaseBuild DTE ExecuteCommand Build SolutionConfigurations Release DTE Execu
  • 如何在 Dart 中将“ByteData”实例写入文件?

    我正在使用 Flutter 将 资产 加载到File以便本机应用程序可以访问它 这就是我加载资产的方式 final dbBytes await rootBundle load assets file 这将返回一个实例ByteData 我怎样
  • 如何在 TKinter 中显示控制台输出?

    我希望控制台中的显示显示在 GUI Tkinter 中 它应该在输出到 Python 控制台时准确显示 而不是在项目完成后显示 你能用 Tkinter 做到这一点吗 或者还有其他选择吗 这些是我当前的输出 这些应该实时显示在 GUI 上 S
  • 使用 Interop 从 Excel 获取最后一个非空列和行索引

    我正在尝试使用互操作库从 Excel 文件中删除所有多余的空白行和列 我关注了这个问题使用 Interop 从 Excel 文件中删除空行和空列的最快方法 https stackoverflow com questions 40574084
  • 使用 getchar() 输入字符串

    以下代码使用 getchar 接受一行输入 include