繁体   English   中英

运算符==在C语言中不起作用

[英]Operator == doesn't work in C

用C编写程序时出现奇怪的错误。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include "defs.h"
int main (int argc, char* argv[])
{
 int boardSize = atoi(argv[2]);

 int generations = atoi(argv[4]);

int gamesort = atoi(argv[1]);
printf("2 is %d 1 is %d 4 is %d name of file is %s \n",boardSize,gamesort,generations,argv[3]);

    if (1==1)
    {
    printf("yes");
        ZeroPlayersGame(boardSize, generations,argv[3]);
    }
    else//(gamesort==2)
    {
        TwoPlayersGame(boardSize, generations,argv[3]);
    }
    return 0;
}

这是我从终端获得的错误:

ise@ubuntu:~/Desktop$ make

gcc -c main.c defs.c gameIO.c zeroPlayer.c twoPlayer.c

gcc gameIO.o defs.o zeroPlayer.o main.o twoPlayer.o -o prog

ise@ubuntu:~/Desktop$ ./prog 1 2 "l.txt" 3

2 is 2 1 is 1 4 is 3 name of file is l.txt 

Segmentation fault (core dumped)

很奇怪,您可以看到我的程序没有输入我的第一个“ if”,但是您可以看到它在if语句之前打印了一行。

谢谢你的帮助!

我认为您的问题与您的问题标题“运算符==在C中不起作用”无关。 从输出中可以看出,printf可以正常工作,并且函数“ ZeroPlayersGame”和“ TwoPlayersGame”中可能存在问题。 如果您向我们提供了有关这两个功能的更多信息,则解决问题将变得更加容易。 另外,在逻辑语句中使用“ 1 == 1”也很奇怪。 为什么不消除它,并在printf语句之后编写您的语句。 因为“ 1 == 1”始终为真。

暂无
暂无

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

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