scanf_s从缓冲区中删除I char

盖亚

我正在编写一个程序,将罗马数字转换为阿拉伯数字,反之亦然。在我为程序添加了一种检查输入是否为数字或字符串的方法之前,该程序对于这两种程序均运行良好。

现在,一切都仍然有效,只是它忽略I了scanner(scanf_s中每个字符串的第一个后续的I信件或其他信件均不会发生这种情况

即。

II将I读入romanString

IV将V读入romanString

XX将XX读入romanString

XIX将XIX读入romanString

chux-恢复莫妮卡

I是的一部分Infinity并使用scanf_s("%f",...I但找不到其余部分并返回0。

scanf()和family是解析变体格式的糟糕方法。更好的读取线fgets(),然后解析字符串

或者如果需要使用scanf_s()...

    char romanString[100];
    float arabicNumber=0;

    printf("Enter roman or arabic number:");
    scanf_s("%99s", romanString, 99);  // should be scanf_s("%99s", romanString, 100);
    if (sscanf_s(romanString, "%f", &arabicNumber) == 1)
    {
        printf("Roman numerals: ");
        arabicToRoman(arabicNumber);
    }
    else
    {
        printf("Arabic numerals: ");
        romanToArabic(romanString);
    }   

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

缓冲区溢出-退出功能后未从堆栈中删除Char数组

来自分类Dev

将缓冲区(char *)传递给C中的函数

来自分类Dev

如何使char缓冲区充当文件?

来自分类Dev

char []和char *的缓冲区溢出漏洞

来自分类Dev

如何将char *缓冲区转换为unsigned char缓冲区

来自分类Dev

使用char和scanf_s()有麻烦

来自分类Dev

在C中获取char缓冲区(从读取的文件)中的值数

来自分类Dev

将中间转换的char *缓冲区设置为int *

来自分类Dev

将FILE句柄重定向到char缓冲区

来自分类Dev

静态char []缓冲区是否已初始化

来自分类Dev

如何从char []创建指向缓冲区的指针

来自分类Dev

直接写入std :: string的char *缓冲区

来自分类Dev

将char缓冲区转换为struct

来自分类Dev

将vector <unsigned long>转换为char缓冲区[]

来自分类Dev

是否可以在C中使用较大的char缓冲区

来自分类Dev

C ++用libzpaq压缩到char *缓冲区

来自分类Dev

只能将Char *写入LPVOID缓冲区吗?

来自分类Dev

如何从char缓冲区创建long int?

来自分类Dev

将char []缓冲区传递给XmlSerializer

来自分类Dev

Java-大小适合char缓冲区

来自分类Dev

从char缓冲区读取32位变量

来自分类Dev

从char缓冲区读取一点

来自分类Dev

如何使用Gstreamer播放原始char *缓冲区?

来自分类Dev

将char缓冲区转换为struct

来自分类Dev

C程序char缓冲区意外溢出

来自分类Dev

将双精度值保存在char []缓冲区中

来自分类Dev

通过memcpy从无符号char *缓冲区中获取较长时间

来自分类Dev

忽略通过HTTP GET C ++接收到的char缓冲区中的转义字符

来自分类Dev

在Arduino中获取char缓冲区的最后9位数字