Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 不执行时执行,意外终止_C_Loops_If Statement_Logic - Fatal编程技术网

C 不执行时执行,意外终止

C 不执行时执行,意外终止,c,loops,if-statement,logic,C,Loops,If Statement,Logic,我有以下代码,如果按下1&2以外的任何键,我想终止while循环。但是只有do执行一次。而不是而。为什么我的而条件总是错误的。请注意: char a; do { printf("To Enter the Employee sales press 1 \n"); printf("To Add more items press 2 \n "); printf("Press any key to Terminate \n\n"); scanf("%c",

我有以下代码,如果按下
1&2
以外的任何键,我想终止while循环。但是只有
do
执行一次。而不是
。为什么我的<代码>而条件
总是错误的。请注意:

char a;

do
{
    printf("To Enter the Employee sales press 1 \n");
    printf("To Add more items press 2 \n ");
    printf("Press any key to Terminate \n\n");  

        scanf("%c", &a);
    if ( a == '1' )
    {
        printf("1 is presed ");
    }
    else if(a == '2')
    {
        int c;

        printf("entre Value:");
        scanf("%d",&c);
        printf("\n");
        addItem( &myArray, &size, c );
        printitems(myArray, size);   
    }
}while(a == '1' || a == '2');

编辑很抱歉,这是一个qout。我忘了输入最新的代码。即使使用qoutes,它也不会在运行时运行。

您已将“a”声明为char类型。你的情况很好


而(a==1 | | a==2)


应该是



而(a='1'| | a='2')

您已将“a”声明为char类型。你的情况很好


而(a==1 | | a==2)


应该是



而(a='1'| | a='2')

您已将“a”声明为char类型。你的情况很好


而(a==1 | | a==2)


应该是



而(a='1'| | a='2')

您已将“a”声明为char类型。你的情况很好


而(a==1 | | a==2)


应该是



而(a='1'| | a='2')

scanf()
中的
%c
前面需要一个空格:

您正在读取输入的第一个字符,并在缓冲区中留下一个字符。因此,如果您输入:

'1'
您实际上得到了两个字符,首先是
'1'
,然后是一个
'\n'
(一个“1”,然后是一个新行字符,当您按enter键时会出现)。因此,它首先将
'1'
存储到
a
,然后第二次将剩余的换行符读入
a
,(它将显示为“跳过”请求您输入)。由于
'\n'
不等于
'1'
'2'
,因此它正确退出


%c
之前添加空格将告诉
scanf()
忽略缓冲区上剩余的任何空白(新行字符将计为空白)

scanf()
中的
%c
之前需要一个空格:

您正在读取输入的第一个字符,并在缓冲区中留下一个字符。因此,如果您输入:

'1'
您实际上得到了两个字符,首先是
'1'
,然后是一个
'\n'
(一个“1”,然后是一个新行字符,当您按enter键时会出现)。因此,它首先将
'1'
存储到
a
,然后第二次将剩余的换行符读入
a
,(它将显示为“跳过”请求您输入)。由于
'\n'
不等于
'1'
'2'
,因此它正确退出


%c
之前添加空格将告诉
scanf()
忽略缓冲区上剩余的任何空白(新行字符将计为空白)

scanf()
中的
%c
之前需要一个空格:

您正在读取输入的第一个字符,并在缓冲区中留下一个字符。因此,如果您输入:

'1'
您实际上得到了两个字符,首先是
'1'
,然后是一个
'\n'
(一个“1”,然后是一个新行字符,当您按enter键时会出现)。因此,它首先将
'1'
存储到
a
,然后第二次将剩余的换行符读入
a
,(它将显示为“跳过”请求您输入)。由于
'\n'
不等于
'1'
'2'
,因此它正确退出


%c
之前添加空格将告诉
scanf()
忽略缓冲区上剩余的任何空白(新行字符将计为空白)

scanf()
中的
%c
之前需要一个空格:

您正在读取输入的第一个字符,并在缓冲区中留下一个字符。因此,如果您输入:

'1'
您实际上得到了两个字符,首先是
'1'
,然后是一个
'\n'
(一个“1”,然后是一个新行字符,当您按enter键时会出现)。因此,它首先将
'1'
存储到
a
,然后第二次将剩余的换行符读入
a
,(它将显示为“跳过”请求您输入)。由于
'\n'
不等于
'1'
'2'
,因此它正确退出


%c
之前添加空格会告诉
scanf()
忽略缓冲区上剩余的任何空白(新行字符计为空白)

a==“1”。。。(在单引号中)?a=='1'。。。(在单引号中)?a=='1'。。。(在单引号中)?a=='1'。。。(单引号)?检查addItem和printitems是否工作正常。如果不使用这两个函数,它工作得很好检查addItem和printitems是否工作得很好。如果不使用这两个函数,它工作得很好检查addItem和printitems是否工作得很好。如果不使用这两个函数,它工作得很好检查addItem和printitems是否工作得很好。如果不使用这两个功能,它就不会完美地工作在我最疯狂的梦想中。你的时间到此为止。我感觉很傻。谢谢:)我做梦也想不到这件事。你的时间到此为止。我感觉很傻。谢谢:)我做梦也想不到这件事。你的时间到此为止。我感觉很傻。谢谢:)我做梦也想不到这件事。你的时间到此为止。我感觉很傻。谢谢:)
scanf(" %c", &a);