编者按:复制别人的代码到Linux中运行,在编译时出错——错误:
程序中有游离的‘\302’——查找资料后获取解决方法,在此做一个记录。
错误提示如下:
read.c:164:6: 错误: 程序中有游离的‘\302’
read.c:164:6: 错误: 程序中有游离的‘\302’
read.c:164:6: 错误: 程序中有游离的‘\302’
read.c:164:6: 错误: 程序中有游离的‘\302’
此类错误不是并不是程序代码的问题,而是程序中某一些字符(如空格,换行符等)的编码格式不正确导致。就像在C语言编译器中使用了中文状态下的括号就会出错一样。
只要将这些游离的字符删除,或者替换成编码格式正确的字符即可。
这里用到sed命令。
将read.c文件中的八进制字符’\302’替换为空
sed -i "s/\o302//g" read.c
#\o指定用8进制编码
对sed命令有兴趣请转至 :Linux sed命令详解
参考:
————————————————
c编译时的错误:程序中有游离的‘\240’‘\302’‘\XXX 时解决方案
linux sed 替换、删除文件中的某个字符串