c代码编译的错误提示:
1 2 3
| films1.c:15: error: stray ‘\200’ in program films1.c:15: error: stray ‘\343’ in program films1.c:15: error: stray ‘\200’ in program
|
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #include <stdio.h> #define TSIZE 45 #define FMAX 5 struct film{ char title[TSIZE]; int rating; }; int main(void) { struct film movies[FMAX]; int i =0; int j; puts("Enter first movie title: "); while(i < FMAX && gets(movies[i].title) != NULL && movies[i].title != '\0') { puts("Enter your rating <0-10>"); scanf("%d",&movies[i++].rating); while(getchar() != '\n') { continue; } puts("Enter next movie title (empty line to stop)"); } if(i == 0) { printf("No data entered."); } else { printf("Here is the movie list: \n"); } for(j=0;j<i;j++) { printf("Movie: %s Rating: %d \n", movies[j].title, movies[i].rating); } printf("Bye!\n"); return 0; }
|
经过搜索,找出了问题的所在:
这个错误是由于使用了中文引号或其他全角符号,还有一种就是有中文的空格(这个不容易观察),需调到顶格处,再用tab即可。
通过 cat -A可以看到捣乱的字符。
解决方案可以编写脚本过滤字符,看到有人说可以用gedit的替换功能,替换为标准空格。这个方法比较省力一点。尤其是代码较多时。一行一行改的想法还是放弃吧。