无法运行一段代码从C中的用户那里获取不同类型的数据

Fabricio_A

这个问题可能看起来很愚蠢,但是我不习惯使用C语言,在这里我不知道为什么出了错。

基本上,我想要从用户那里得到一个数字,然后是一个字符串,用户可以写下他想写的任何内容,我只想保留该字符串的第一个字符。

我的代码如下:

#include <stdio.h>

int main()
{
  int b, n;
  char frase [2];

  scanf("%d", &n);
    
  fgets(frase, 2, stdin);
  puts(frase);

  return 0;
}

我的问题是,fgets程序停止运行之后,无论我执行什么操作,它都只会停止运行,没有错误消息或其他任何信息。怎么了?

阿纳斯塔丘

怎么了?

您的代码将:

  • 输入123 abc

    • 存储123n,存储空格,frase后跟一个空字节。然后,它将打印该单个空间并结束其执行而不会出错。
  • 输入123 Enter abc

    • 商店123n,并存储在frase换行符\n添加到缓冲区,当你按下Enter,随后是空字节,接下来将打印\n并结束其没有错误的执行。

因此,它不仅止步不前,而且还可以实现应有的功能。

为了使代码更健壮,您应该做的是还使用解析数字fgets,并使用sscanf或进行转换strtol

int n = 0;
char buffer[20];
char frase[2];

fgets(buffer, sizeof buffer, stdin); 
if(sscanf(buffer, "%d", &n) != 1){
    //value not parsed
}

fgets(frase, sizeof frase, stdin);

puts(frase);

scanf如果有的话,很少使用解析输入来进行分析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

关闭C#中的一段代码使用的过程

来自分类Dev

从数据部分执行一段代码

来自分类Dev

当用户在Swift中点击UITextView时,如何运行一段代码?

来自分类Dev

当用户在Swift中点击UITextView时,如何运行一段代码?

来自分类Dev

Excel VBA;UserForm,在不同的TextBox值上运行一段代码

来自分类Dev

在一段代码中暂停GC

来自分类Dev

无法从 R 中的数据帧绘制不同类型的变量

来自分类Dev

多次运行一段代码,以更改R中的某些参数(例如SAS中的宏)

来自分类Dev

我该如何编写一段代码来检查用户输入中单词出现的次数

来自分类Dev

C++如何只向用户显示一段代码并让他们编译

来自分类Dev

如何在Python中运行一段代码,类似于Matlab

来自分类Dev

在Jenkins中重复运行Java代码一段给定的时间

来自分类Dev

如何使用Scene Kit在每帧中运行一段代码?

来自分类Dev

如何运行一段代码,使它不会在QtQuick中夺走所有焦点?

来自分类Dev

在JS中,如何仅在完成多个地图功能后才运行一段代码?

来自分类Dev

有一段代码等待在 iOS 中的某个时间运行

来自分类Dev

是否有一种简单的方法可以通用地从字符串中解析数据以获取C#中不同类型的子类属性?

来自分类Dev

装饰类以在调用__get __()时运行一段代码

来自分类Dev

Python:运行一段代码,除非导入

来自分类Dev

如何在android的后台运行一段代码?

来自分类Dev

烧瓶中不同类型的用户注册

来自分类Dev

无法在一段代码中找出多个onmousedown / up和click事件

来自分类Dev

Java 在一段时间后或从他那里返回数据时杀死线程

来自分类Dev

延迟一段代码

来自分类Dev

使一段代码对大数据有效

来自分类Dev

如何在C ++中获得一段代码的执行时间?

来自分类Dev

当队列的计数为零时,如何在C#中锁定一段代码?

来自分类Dev

如何在C ++中获得一段代码的执行时间?

来自分类Dev

Objective-C:如何定义宏以从pod依赖项中禁用一段源代码?

Related 相关文章

  1. 1

    关闭C#中的一段代码使用的过程

  2. 2

    从数据部分执行一段代码

  3. 3

    当用户在Swift中点击UITextView时,如何运行一段代码?

  4. 4

    当用户在Swift中点击UITextView时,如何运行一段代码?

  5. 5

    Excel VBA;UserForm,在不同的TextBox值上运行一段代码

  6. 6

    在一段代码中暂停GC

  7. 7

    无法从 R 中的数据帧绘制不同类型的变量

  8. 8

    多次运行一段代码,以更改R中的某些参数(例如SAS中的宏)

  9. 9

    我该如何编写一段代码来检查用户输入中单词出现的次数

  10. 10

    C++如何只向用户显示一段代码并让他们编译

  11. 11

    如何在Python中运行一段代码,类似于Matlab

  12. 12

    在Jenkins中重复运行Java代码一段给定的时间

  13. 13

    如何使用Scene Kit在每帧中运行一段代码?

  14. 14

    如何运行一段代码,使它不会在QtQuick中夺走所有焦点?

  15. 15

    在JS中,如何仅在完成多个地图功能后才运行一段代码?

  16. 16

    有一段代码等待在 iOS 中的某个时间运行

  17. 17

    是否有一种简单的方法可以通用地从字符串中解析数据以获取C#中不同类型的子类属性?

  18. 18

    装饰类以在调用__get __()时运行一段代码

  19. 19

    Python:运行一段代码,除非导入

  20. 20

    如何在android的后台运行一段代码?

  21. 21

    烧瓶中不同类型的用户注册

  22. 22

    无法在一段代码中找出多个onmousedown / up和click事件

  23. 23

    Java 在一段时间后或从他那里返回数据时杀死线程

  24. 24

    延迟一段代码

  25. 25

    使一段代码对大数据有效

  26. 26

    如何在C ++中获得一段代码的执行时间?

  27. 27

    当队列的计数为零时,如何在C#中锁定一段代码?

  28. 28

    如何在C ++中获得一段代码的执行时间?

  29. 29

    Objective-C:如何定义宏以从pod依赖项中禁用一段源代码?

热门标签

归档