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