相关疑难解决方法(0)

我可以用什么代替scanf进行输入转换?

我经常看到人们不鼓励其他人使用scanf并说有更好的选择。但是,我最终看到的只是“不要使用scanf”或“这里是正确的格式字符串”,并且从来没有提到“更好的替代方案”的任何示例。

例如,让我们看一下这段代码:

scanf("%c", &c);
Run Code Online (Sandbox Code Playgroud)

这将读取最后一次转换后留在输入流中的空白。通常建议的解决方案是使用:

scanf(" %c", &c);
Run Code Online (Sandbox Code Playgroud)

还是不使用scanf。

由于scanf不好,用于转换scanf通常无需使用即可处理的输入格式(例如整数,浮点数和字符串)的ANSI C选项有哪些scanf?

c scanf

124
推荐指数
7
解决办法
8381
查看次数

isalpha()给出一个断言

我有一个C代码,我在ctype.h中使用标准库函数isalpha(),这是在Visual Studio 2010-Windows上.在下面的代码中,如果char c为'£',则isalpha调用将返回一个断言,如下面的快照所示:

在此输入图像描述

char c='£';

if(isalpha(c))
{
    printf ("character %c is alphabetic\n",c);

}
else
{
    printf ("character %c is NOT alphabetic\n",c);
}
Run Code Online (Sandbox Code Playgroud)

我可以看到这可能是因为8位ASCII没有这个字符.

那么如何处理ASCII表外的非ASCII字符呢?

我想要做的是,如果找到任何非字母字符(即使它包含不在8位ASCII表中的字符),我希望能够忽略它.

c non-ascii-characters

9
推荐指数
2
解决办法
3691
查看次数

如何修复 scanf 将数据放入数组中?

有人可以就 scanf 提出建议吗?“message”是一个 4 行 x 16 列的数组。用户输入数字(全部为 1 位整数)后,按“Enter”键时会出现错误消息。正如所说 - 可能与 scanf 有关。

for (int i = 0; i < M; i++) {
        for (int j = 0; j < columns; j++) {
            scanf("%d", message[i][j]);
        }
}
Run Code Online (Sandbox Code Playgroud)

c scanf

0
推荐指数
1
解决办法
911
查看次数

标签 统计

c ×3

scanf ×2

non-ascii-characters ×1