[英]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.