c - 在 C 中存储来自终端输入的字符指针

标签 c terminal

我正在尝试使用终端输入创建一个简单的计算器。它应该像这样工作:

./main.c 1 + 3
1 + 3 = 4

这本身是非常简单的代码,但我的终端输入有问题。我在 stackexchange 上阅读了很多有关终端输入的内容,但在编译时出现此错误:

error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]

我不知道为什么。我尝试了很多不同的方法来做到这一点,但它不起作用。这是代码,我只想知道如何存储上面示例中的 1、+ 和 3。我在这里发布的代码只是一个示例,说明如何存储最“困难”的操作,在本例中为 + 运算符。

#include<stdio.h>

int
main(int argc, char *argv[])
  {

    char operator;
    int *operatorp;
    operatorp = &operator;

    operatorp = argv[2];

    printf("%c\n",operator);

    return 0;
 }

最佳答案

这是不正确的,您正在尝试将 int * 转换为 char。

就这么做

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

int main(int argc, char **argv)
{
  int nbr1 = atoi(argv[1]);
  char operator = argv[2][0];
  int nbr2 = atoi(argv[3]);

  int result = 0;

  if (operator == '+')
    result = nbr1 + nbr2;
  printf("%d\n", result);
}

关于c - 在 C 中存储来自终端输入的字符指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40535605/

相关文章:

c - 如何定义系统()

c - 将指向结构的指针分配给变量

c - 将 "Unknown Command"传递给 execv() 时出现 "uname"错误

c - 强制执行 C 语句的顺序?

emacs 控制台模式 Org-mode 删除线未按预期显示

c - 输入太大时算法返回垃圾?

emacs - 在 emacs 的终端中使用 Ctrl-X 命令?

windows - 如何在 Windows 和跨平台中为 git commit 消息在 npm 脚本中传递当前日期时间?

javascript - 如何在javascript中将值返回到控制台?

c - ncurses 中的上半 block 和下半 block 字符