【问题标题】:stray characters in program [closed]程序中的杂散字符[关闭]
【发布时间】:2012-10-25 04:11:06
【问题描述】:

我的教授给了我们一些代码,并说它应该能够编译,但我遇到了各种各样的错误,我不知道出了什么问题,因为我对 c 没有任何经验。它是一个汇编语言类,我们应该编写汇编代码来匹配 c 代码正在做的事情。他告诉我们用 c 运行程序来感受一下。

#include <stdio.h>
#define  SIZE  40

main()
{
int v[SIZE];
register int gap, i, j, temp;

/*  Initialize array to random positive integers mod 256  */
for (i = 0; i < SIZE; i++)
    v[i] = rand() & 0xFF;

/*  Display the unsorted array  */
for (i = 0; i < SIZE; i++)
    printf(“v[%-d] = %-d\n”, i, v[i]);

/*  Sort the array using a shell sort  */
for (gap = SIZE / 2; gap > 0; gap /= 2) {
    for (i = gap; i < SIZE; i++) {
        for (j = i - gap; j >= 0 && v[j] > v[j + gap]; j -= gap) {
            /*  Exchange out of order items  */
            temp = v[j];
            v[j] = v[j + gap];
            v[j + gap] = temp;
        }
    }
}

/*  Display the sorted array  */
for (i = 0; i < SIZE; i++)
    printf(“v[%-d] = %-d\n”, i, v[i]);
}

我得到的错误是第 15 行和第 31 行的错误,所以每一行都有一个 printf。

As3.c: In function ’main’:
As3.c:15: error: stray ’\223’ in program
As3.c:15: error: expected expression before ’%’ token 
As3.c:15: error: expected expression before ’%’ token
As3.c:15: error: stray ’\’ in program
As3.c:15: error: stray ’\224’ in program
As3.c:31:error: stray ’\223’ in program
As3.c:31:error: expected expression before ’%’ token
As3.c:31:error: expected expression before ’%’ token
As3.c:31:error: stray ’\’ in program
As3.c:31:error: stray ’\224’ in program

任何帮助都会受到重视,我相信这一定很简单,但我在 c 方面是个菜鸟。

【问题讨论】:

  • 这些杂散字符强烈暗示复制/粘贴错误或损坏。
  • 您是从 MS Word 或类似软件中复制粘贴的吗? “魔术引号”正在打破它的一件事。
  • 是的,他在 ms word 文件中给了我们代码,我会尝试在记事本中再次重写代码。
  • 真是个 n00b。 (就是你的教授。)
  • 你需要告诉你的教授 MS WORD 不适用于代码。是的,用粗体大写。这不好。不仅使用像 MS word 这样的应用程序完全不适合代码(默认情况下非等宽,没有自动缩进,没有语法突出显示),而且它还 breaks 代码,因为它使用印刷引号等. 而不是编程语言使用的纯 ASCII 码。

标签: c compiler-construction


【解决方案1】:

看起来有些字符被“聪明”化了,可能是通过 Microsoft Word 或类似程序。您需要进行查找和替换以将 更改为 " (可能对于其他字符也是如此,尽管 是唯一抱怨的特定字符您发布的编译错误)。

【讨论】:

  • 任何在 Microsoft Word 中保存代码的人都应该被当场枪毙。
  • 谢谢,只需更改引号即可使程序运行。我简直不敢相信它是多么简单。
  • @user1773059:不客气!
  • 任何适当的“发布程序”都应该尝试使开始和结束引号看起来不同。所以,这更像是用户错误。也可能是有意的,教学生一些关于源代码、编译器行为和复制粘贴的知识。如果我能教这样的东西,我想我会完全做到这一点。
  • @user1773059 如果它解决了您的问题,您可以考虑接受答案。您可以通过单击答案中显示的勾号来完成。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
相关资源
最近更新 更多