【问题标题】:Garbled compiler (MinGW) output乱码编译器 (MinGW) 输出
【发布时间】:2012-05-03 08:23:48
【问题描述】:

我一直在尝试编译一些我在其他地方拍摄的基本链表示例。

我遇到的问题更多的是用户类型。我想这张照片说明了一切:

所有奇怪符号的原因是什么?正常的 MinGW 输出应该类似于 error: invalid conversion from ‘void*’ to ‘element*’

这就是我遇到的问题,但我很乐意收到有关错误本身的解释。这是我的代码:

#include <stdio.h>
#include <stdlib.h>
struct element {
       int info;
       struct element *next;
};
int main(void){
struct element *head, *node;
int arv;
head = NULL;
printf("Enter number! (0 to exit)");
scanf("%d",&arv);
while (arv != 0){
      node = malloc(sizeof *node);
      node->next = head;
      node->info = arv;
      head = node;
      printf("Enter number! (0 to exit)");
      scanf("%d",&arv);
}
}

编辑 解决了 !感谢您的信息。类似的问题:

mingw g++ gives warnings in wrong language (german instead of english)

Non-localized version of MinGW?

至于解决方案,我从“\mingw\share\locale”中删除了所有内容。不过可能不是最佳做法。

【问题讨论】:

  • malloc 返回一个 void*... 你需要强制转换它。至于编译器输出我不知道。您是否为您的架构使用了正确的编译器版本?
  • 嗯,我不会说那是“乱七八糟”,我会说那是“乱码”。我已经准备好发布一个有同情心的答案,告诉你,事实上,C++ 编译器的输出通常是“混乱的”。 :-)
  • 如果在该控制台窗口内发出set 命令,您能否发布输出。
  • 更改为node = (struct element*)malloc(sizeof(struct element));
  • 如果回答正确且对您有帮助,请采纳。

标签: c++ c linked-list mingw


【解决方案1】:

我在这里疯狂地猜测,但是您的编译器可能会输出使用 UTF-8 以您的语言本地化的错误消息,并且您的终端不理解 UTF-8 并在某些 Windows 代码页中显示它。您的语言设置是否配置为非拉丁语言?

【讨论】:

  • +1:提供的信息也是我猜的(请参阅我对问题的评论/提示)。唯一奇怪的是,消息“In function '%s':”的那部分似乎没有本地化。
猜你喜欢
  • 2018-05-29
  • 1970-01-01
  • 2014-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-17
  • 1970-01-01
  • 2014-06-24
相关资源
最近更新 更多