为什么此代码有“内联文件中的EOF”错误,我该如何解决?

蒂姆·约巴(Tim Yorba)

我直接从制造商那里获得了此源代码,无法对其进行编译。我总是收到EOF文件错误。

我正在使用Pelles C在Windows 10 X64上进行编译。似乎应该很简单,但我无法弄清楚。它应该是我提供一个字符串的程序,并且应该打印一个crc

int main(){
    str scan = "";
    printf("Enter String");
    fgets(scan, 10, stdin);
    calc_crc_half(scan, 4);
    return(0);
}

INT16U cal_crc_half(INT8U far *pin, INT8U len){
    INT16U crc;
    INT8U da;
    INT8U far *ptr;
    INT8U bCRCHign;
    INT8U bCRCLow;

    INT16U crc_ta[16]={
        0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
        0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef
    };
    ptr=pin;
    crc=0;
    while(len--!=0) 
    {
        da=((INT8U)(crc>>8))>>4;
        crc<<=4;
        crc^=crc_ta[da^(*ptr>>4)];
        da=((INT8U)(crc>>8))>>4;
        crc<<=4;
        crc^=crc_ta[da^(*ptr&0x0f)];
        ptr++;
    }
    bCRCLow = crc;
    bCRCHign= (INT8U)(crc>>8);

    if(bCRCLow==0x28||bCRCLow==0x0d||bCRCLow==0x0a){
        bCRCLow++;
    }

    if(bCRCHign==0x28||bCRCHign==0x0d||bCRCHign==0x0a){
        bCRCHign++;
    }
    crc = ((INT16U)bCRCHign)<<8;
    crc += bCRCLow;
    printf(crc);
    return(crc);
}

我希望输出是四个字符串。

马克·本宁菲尔德

因为您说的是“直接从制造商那里得到的”代码,所以大概需要出于特定目的使用此特定实现生成的CRC。此代码将起作用。如果无法编译,则说明您在Pelles C IDE中执行的操作不正确。如果是这种情况,您可以尝试使用向导来生成一个简单的“ Hello World”程序,然后在编译并运行该程序时,将其替换为该代码。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

unsigned short cal_crc_half(unsigned char *pin, size_t len){
  unsigned short crc;
  unsigned char da;
  unsigned char *ptr;
  unsigned char bCRCHign;
  unsigned char bCRCLow;

  unsigned short crc_ta[16]={
    0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
    0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef
  };
  ptr=pin;
  crc=0;
  while(len--!=0) 
  {
    da=((unsigned char)(crc>>8))>>4;
    crc<<=4;
    crc^=crc_ta[da^(*ptr>>4)];
    da=((unsigned char)(crc>>8))>>4;
    crc<<=4;
    crc^=crc_ta[da^(*ptr&0x0f)];
    ptr++;
  }
  bCRCLow = (unsigned char)crc;
  bCRCHign= (unsigned char)(crc>>8);

  if(bCRCLow==0x28||bCRCLow==0x0d||bCRCLow==0x0a){
    bCRCLow++;
  }

  if(bCRCHign==0x28||bCRCHign==0x0d||bCRCHign==0x0a){
    bCRCHign++;
  }
  crc = ((unsigned short)bCRCHign)<<8;
  crc += bCRCLow;
  return crc;
}

int main(int argc, char* argv[])
{
  char word[256];
  unsigned short crc;
  puts("Type each word and hit 'Enter'. Enter 'quit' to exit.\n");
  while (fgets(word, 256, stdin) != NULL) {
    if (strcmp(word, "quit\n") == 0) break;
    crc = cal_crc_half(word, strcspn(word, "\n"));
    printf("%X\n", crc);
  }
  return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我该如何解决此逻辑错误?代码有什么错误?

来自分类Dev

为什么会出现此错误,我该如何解决?迅速

来自分类Dev

我想知道为什么我不能将我的文本与代码中的变量连接起来。我该如何解决此代码?

来自分类Dev

为什么我有/如何解决此错误:“ shell_session_update:未找到命令”

来自分类Dev

为什么通过Angular $ http解析此示例Twitter json文件失败,我该如何解决?

来自分类Dev

代码不断出现错误“命令帮助已经是现有命令或别名”,为什么会这样,我该如何解决?

来自分类Dev

我该如何解决此错误:错误:没有光纤就不能等待吗?

来自分类Dev

为什么“触摸” makemake文件以及所有源文件不会重建任何内容?我该如何解决?

来自分类Dev

我该如何解决此toString()错误?

来自分类Dev

我该如何解决此代码?没有错误,可能是错误的代码-javascript(数组,数字,最大值,最小值)

来自分类Dev

“没有匹配的函数调用...”此错误从哪里来,我该如何解决?

来自分类Dev

为什么我得到了错误的输出,我该如何解决这个问题?

来自分类Dev

为什么我的拆分视图具有这种行为,我该如何解决?

来自分类Dev

为什么我在初始化字母时遇到错误,该如何解决?

来自分类Dev

为什么vi明显损坏(viminfo错误E576),我该如何解决?

来自分类Dev

为什么会出现此编译错误:“找不到kstream.Consumed的隐式值”,我该如何解决?

来自分类Dev

为什么9 + 1 = *,我该如何解决?

来自分类Dev

为什么我不能下载swiglpk,该如何解决?

来自分类Dev

NoClassDefFoundError。为什么???我该如何解决?

来自分类Dev

mongodb错误。我该如何解决mongoDB中的错误?

来自分类Dev

如何解决此DirectX代码中的错误?

来自分类Dev

为什么在Python 3.3中打印速度如此之慢,我该如何解决?

来自分类Dev

为什么在Python 3.3中打印速度如此之慢,我该如何解决?

来自分类Dev

为什么VNC在14.04 Desktop中损坏了,我该如何解决?

来自分类Dev

为什么在Ubuntu 20.04中某些GUI字体这么小?我该如何解决?

来自分类Dev

我有什么版本的Cordova,该如何解决?

来自分类Dev

我该如何解决此错误?android.view.InflateException:二进制XML文件行#300

来自分类Dev

我该如何解决流星js中的--port错误

来自分类Dev

我该如何解决细分错误?

Related 相关文章

  1. 1

    我该如何解决此逻辑错误?代码有什么错误?

  2. 2

    为什么会出现此错误,我该如何解决?迅速

  3. 3

    我想知道为什么我不能将我的文本与代码中的变量连接起来。我该如何解决此代码?

  4. 4

    为什么我有/如何解决此错误:“ shell_session_update:未找到命令”

  5. 5

    为什么通过Angular $ http解析此示例Twitter json文件失败,我该如何解决?

  6. 6

    代码不断出现错误“命令帮助已经是现有命令或别名”,为什么会这样,我该如何解决?

  7. 7

    我该如何解决此错误:错误:没有光纤就不能等待吗?

  8. 8

    为什么“触摸” makemake文件以及所有源文件不会重建任何内容?我该如何解决?

  9. 9

    我该如何解决此toString()错误?

  10. 10

    我该如何解决此代码?没有错误,可能是错误的代码-javascript(数组,数字,最大值,最小值)

  11. 11

    “没有匹配的函数调用...”此错误从哪里来,我该如何解决?

  12. 12

    为什么我得到了错误的输出,我该如何解决这个问题?

  13. 13

    为什么我的拆分视图具有这种行为,我该如何解决?

  14. 14

    为什么我在初始化字母时遇到错误,该如何解决?

  15. 15

    为什么vi明显损坏(viminfo错误E576),我该如何解决?

  16. 16

    为什么会出现此编译错误:“找不到kstream.Consumed的隐式值”,我该如何解决?

  17. 17

    为什么9 + 1 = *,我该如何解决?

  18. 18

    为什么我不能下载swiglpk,该如何解决?

  19. 19

    NoClassDefFoundError。为什么???我该如何解决?

  20. 20

    mongodb错误。我该如何解决mongoDB中的错误?

  21. 21

    如何解决此DirectX代码中的错误?

  22. 22

    为什么在Python 3.3中打印速度如此之慢,我该如何解决?

  23. 23

    为什么在Python 3.3中打印速度如此之慢,我该如何解决?

  24. 24

    为什么VNC在14.04 Desktop中损坏了,我该如何解决?

  25. 25

    为什么在Ubuntu 20.04中某些GUI字体这么小?我该如何解决?

  26. 26

    我有什么版本的Cordova,该如何解决?

  27. 27

    我该如何解决此错误?android.view.InflateException:二进制XML文件行#300

  28. 28

    我该如何解决流星js中的--port错误

  29. 29

    我该如何解决细分错误?

热门标签

归档