c - 扫描不同类型的变量

标签 c string scanf

我的任务是制作一款寻字游戏。用户输入坐标和关联的词。坐标与棋盘中的坐标形式相同(例如:D7 战斗)我将其扫描为:

scanf(" %c%d %s", &ypos, &xpos, word);

问题是,当用户键入 exit 时,程序应该终止,但我不仅扫描字符串,还扫描字符、整数,然后扫描字符串。当输入为 exit 时,如何使程序终止?

最佳答案

您可以首先scanf 输入作为字符串,然后检查它是否是"exit" 字符串,如果是则退出。如果没有,那么使用 sscanf 您可以获得所需的变量。

例子

#include <stdio.h>
#include <string.h>

int main()
{
    char str[20];
    char x;
    int y;
    char word[20];

    if (1 != scanf("%19[^\n]", str))
      return printf("Invalid input\n"), 0;

    if (strcmp(str, "exit") == 0)
      return printf("Exiting\n"), 0;

    if (3 != sscanf(str, "%c%d%s", &x, &y, word))
      return printf("Invalid input\n"), 0;

    printf("%c%d %s", x, y, word);

    return 0;
}

关于c - 扫描不同类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61157785/

相关文章:

c - 计算并打印您的起床时间的程序

c - 使用零宽度字段进行位字段对齐

c - 无符号位域类型 : int or unsigned int

php - (PHP) 使字符串小写,第一个字母除外

c++ - 区分数字和其他符号[c++]

c - 相同的 C 指针显示不同的值?

c# - 将数字与字符串中的其他符号分开

c - 我的 C 代码在 scanf 语句后没有响应

c - 解析一个txt文件

c - 非常简单的 C 程序无法运行