繁体   English   中英

将终端输入中的char指针存储在C中

[英]Store a char pointer from terminal input in C

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

./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);
}

argv是一个矩阵(二维数组),这意味着argv [2]是一个字符数组,您必须执行以下操作:

字符运算符= argv [2] [0];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM