【问题标题】:Simple Error Compiling C code编译 C 代码的简单错误
【发布时间】:2014-04-12 05:10:29
【问题描述】:

这是我得到的错误:

genlib.h:225:1: error: stray ‘\32’ in program

genlib.h 定义在:http://pastebin.com/KgM3J24W

这是我的代码:

/*
 * file: hello.c
 * -----------
 *  This program prints the message "Hello World."
 *  On the screen. The program is taken from the 
 *  classic C reference text "The C Programing
 *  Language" by Brian Kemighan and Dennis Richie.
 */

#include <stdio.h>
#include "genlib.h"

int main()
{
    printf("Hello, World.\n");
    return 0;
}

【问题讨论】:

  • 您在第 225 行有一个不可见字符(032 八进制)。检查您的文件(使用十六进制编辑器、另一个文本编辑器等)另外,我不明白您为什么需要一些随机字符标头 ("genlib.h") 用于编译一个简单的 Hello World。
  • @user3477950 回答您关于我为什么需要使用 ("genlib.h") 的问题。我需要使用的原因是因为我的教授正在用这个库教我们 C。
  • @TittySlap 但你仍然不需要它来打个招呼。也许问题出在他的头文件中。尝试删除它并重新编译。 (同时,您是否使用十六进制编辑器检查了该行?)
  • @user3477950 我的编程经验非常少,而且我不明白如何使用十六进制编辑器。我不认为我应该首先使用它,因为我只是介绍 C 编程。

标签: c include


【解决方案1】:

打开文件genlib.h,转到有垃圾字符的最后一行(可以在链接页面http://pastebin.com/KgM3J24W 中看到),删除该字符,然后保存再次打开文件。

如果您的编辑器没有显示垃圾字符,也许您可​​以尝试创建一个名为 genlib2.h 的新空文件,从 genlib.h 复制内容>(没有垃圾),保存 genlib2.h,然后将 genlib2.h 重命名为 genlib.h。

不可见字符(八进制032)也可以写成^Z,在MS-DOS和旧Windows中用来表示文件结束。可能有人在输入genlib.h的内容时误加了。

【讨论】:

    猜你喜欢
    • 2011-12-29
    • 1970-01-01
    • 2013-11-23
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    相关资源
    最近更新 更多