我无法弄清楚为什么以下代码中的任何一个无法按预期运行.两者都编译成执行文件.
输出:
a.out , prints 1, expected "no value"
a.out 1, prints 2, expected 1
a.out 2, prints 2, expected 2
Run Code Online (Sandbox Code Playgroud)
使用案例:
void main(int in)
{
int a = in ;
printf("In function if\n");
if ( in == 1 )
printf("1\n");
else
if ( in == 2)
printf("2\n");
else
printf("wrong value\n");
}
Run Code Online (Sandbox Code Playgroud)
使用开关:
void main(int in)
{
switch( in )
{
case 1: printf("1\n"); break;
case 2: printf("2\n"); break;
default: printf("wrong value\n"); break;
}
};
Run Code Online (Sandbox Code Playgroud)
我想在C代码中获得以下LISP功能:
(cond ((= in 1) 1)
((= in 2) 2)
(t nil))
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
main不接受来自命令行的输入作为直接参数,你在那里获得参数count,1如果没有参数,并且2如果有一个参数,则会导致奇怪的行为.
main应该被定义为int main( int argc, char *argv[] )类似的东西.要获取输入,您需要首先通过测试argc(参数计数,加上可执行路径的一个)检查它是否存在,然后转换argv[1]为整数.atoi可用于将字符串转换为整数.