2017-04-07 614 views
-1

我明白这个问题之前已经被问过了,请不要把它钉在十字架上。我用NotePad ++来编写代码,当我试图编译它时(我使用cc lab7.c -o test1来编译它),我得到了一堆迷路的\ 342,stray \ 200,stray \ 234错误,正如所见下面。“错误:在C编译时发生' 342'”,“stray' 200'”,“stray' 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 
+0

我做了修改duskwuff建议并改变了char响应; char响应='y';它的工作原理。谢谢! – teddymv

回答

1

有几个问题与您的代码:

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

您在指定位置之前缺少一个逗号,并且在后面的几行相似的行中。

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

在我指定的位置引号都是“智能引号”(“/”),不正常的引号。重新输入它们。

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

+0

谢谢,我取代了这些,并摆脱了其中的大部分。现在只剩下这些: /tmp/ccvLZ92d.o:在函数'main'中: lab7.c :(.text + 0x84):未定义的对'binary'的引用 collect2:error:ld返回1个出口状态 – teddymv

+0

再次阅读我的答案。第一个答案中的模式适用于代码中的多行。 – duskwuff

+0

对不起,是啊,我再次编辑它。摆脱了那些,但后来得到了一个新的错误 – teddymv