我知道以前曾问过这种问题,请不要为此而钉死我。我使用NotePad ++编写了代码,然后尝试对其进行编译(我使用cc lab7.c -o test1对其进行了编译),如图所示,我遇到了一堆杂散\ 342,杂散\ 200,杂散\ 234错误下面。

这是我的代码:

#include <stdio.h>
#include <string.h>


char inbase, dummy, outbase;
char response;
int inputNum;
char bin [32];

int main(void)
{


// perform for yes response
while (response == 'y' || response == 'Y')
{

    // prompt to read in char for base of input
    printf("Enter a base to read in (b for binary, d for decimal,\n h for hexidecimal, or o for octal: ");
    scanf("%c", &inbase);

    // if binary is inbase
    if (inbase == 'b' || inbase == 'B')
    {
        printf ("Enter a binary number to read: ");
        scanf ("%c", &dummy);
        scanf ("%s", bin);
        inputNum = binary(bin);
    }

    // if inbase is anything else, read
    else
    {
        printf ("Enter an integer to read: ");
        scanf ("%c", &dummy);
        scanf ("%i", &inputNum);
    }

    // output the number

    printf ("Enter a base to output as: ");
    scanf ("%c", &dummy);
    scanf ("%c", &outbase);

    // decimal output
    if (outbase == 'd' || outbase == 'D')
    {
        printf("The integer %i in decimal is %d" inputNum, inputNum);
    }

    // hexidecimal output
    if (outbase == 'h' || outbase == 'H')
    {
        printf("The integer %i in hexidecimal is %h" inputNum, inputNum);
    }

    // octal output
    if (outbase == 'o' || outbase == 'O')
    {
        printf("The integer %i in octal is %o" inputNum, inputNum);
    }

    // check to see if user wants to run again
    printf (“Do you want to …”);
    scanf (“%c”, &dummy);
    scanf (“%c”, &response);
    scanf (“%c”, &dummy);

}

int binary(char* inString)
{
    int sum=0;
    int i;

    for (i=0; i < strlen(inString); i++)
    {
        sum = sum * 2 + (inString[i] - 48);
    }

    return sum;
}

return 0;

}

// END OF CODE


这是我收到的错误消息:

lab7.c: In function ‘main’:

lab7.c:58:45: error: expected ‘)’ before ‘inputNum’
printf("The integer %i in decimal is %d" inputNum, inputNum);
                                         ^

lab7.c:64:49: error: expected ‘)’ before ‘inputNum’
printf("The integer %i in hexidecimal is %h" inputNum, inputNum);
                                             ^

lab7.c:70:43: error: expected ‘)’ before ‘inputNum’
printf("The integer %i in octal is %o" inputNum, inputNum);
                                       ^

lab7.c:74:3: error: stray ‘\342’ in program
printf (“Do you want to …”);
^

lab7.c:74:3: error: stray ‘\200’ in program

lab7.c:74:3: error: stray ‘\234’ in program

lab7.c:74:14: error: ‘Do’ undeclared (first use in this function)
printf (“Do you want to …”);
          ^

lab7.c:74:14: note: each undeclared identifier is reported only once for                    each function it appears in

lab7.c:74:17: error: expected ‘)’ before ‘you’
printf (“Do you want to …”);
             ^

lab7.c:74:17: error: stray ‘\342’ in program

lab7.c:74:17: error: stray ‘\200’ in program

lab7.c:74:17: error: stray ‘\246’ in program

lab7.c:74:17: error: stray ‘\342’ in program

lab7.c:74:17: error: stray ‘\200’ in program

lab7.c:74:17: error: stray ‘\235’ in program

lab7.c:75:3: error: stray ‘\342’ in program
scanf (“%c”, &dummy);
^

lab7.c:75:3: error: stray ‘\200’ in program

lab7.c:75:3: error: stray ‘\234’ in program

lab7.c:75:13: error: expected expression before ‘%’ token
scanf (“%c”, &dummy);
         ^

lab7.c:75:13: error: stray ‘\342’ in program

lab7.c:75:13: error: stray ‘\200’ in program

lab7.c:75:13: error: stray ‘\235’ in program

lab7.c:76:3: error: stray ‘\342’ in program
scanf (“%c”, &response);
^

lab7.c:76:3: error: stray ‘\200’ in program

lab7.c:76:3: error: stray ‘\234’ in program

lab7.c:76:13: error: expected expression before ‘%’ token
scanf (“%c”, &response);
         ^

lab7.c:76:13: error: stray ‘\342’ in program

lab7.c:76:13: error: stray ‘\200’ in program

lab7.c:76:13: error: stray ‘\235’ in program

lab7.c:77:3: error: stray ‘\342’ in program
scanf (“%c”, &dummy);
^

lab7.c:77:3: error: stray ‘\200’ in program

lab7.c:77:3: error: stray ‘\234’ in program

lab7.c:77:13: error: expected expression before ‘%’ token
scanf (“%c”, &dummy);
         ^

lab7.c:77:13: error: stray ‘\342’ in program

lab7.c:77:13: error: stray ‘\200’ in program

lab7.c:77:13: error: stray ‘\235’ in program

最佳答案

您的代码有两个问题:

lab7.c:58:45: error: expected ‘)’ before ‘inputNum’
printf("The integer %i in decimal is %d" inputNum, inputNum);
                                         ^


您在指示的位置之前以及后面的几行类似的行中缺少逗号。

printf (“Do you want to …”);
        ^                ^


我指出的位置中的引号都是“智能引号”(“/”),而不是普通引号。重新输入。

相同的问题适用于以下有关“%c”的每个错误。

09-11 17:17