Android收割者 2015-02-09 01:46 采纳率: 0%
浏览 2379

为什么在VS2013运行的结果和别的编译器不一样,求高人指点

先贴上代码
#include
#include
typedef char datatype;
typedef struct node
{
datatype data;
struct node next;
}listnode;
listnode *createlist();
void getnode(listnode *head, char key);
int main(int argc, char *argv[])
{
char key = 0;
listnode *snode;
snode = createlist();
printf("请输入你想要遍历的节点的元素:");
scanf_s("%c", &key);
printf("你想要的遍历的节点中的元素为:");
getnode(snode, key);
printf("\n");
return 0;
}
listnode *createlist()
{
listnode *p;
listnode *head = NULL;
listnode *r = NULL;
char ch;
while ((ch = getchar()) != '\n')
{
p = (listnode
)malloc(sizeof(listnode));
p->data = ch;
if (head == NULL)
head = p;
else
r->next = p;
r = p;
}
if (r != NULL)
r->next = NULL;
return head;
}
void getnode(listnode *head, char key)
{
listnode *p;
p = head;
while (p->next&&p->data != key)
p = p->next;
if (p != NULL)
printf("%c", p->data);
else
printf("你寻找的节点不存在");
}
在VS2013编译的结果是这样的:
图片说明
而在别的编译器里面则都是D,这才是正确结果。
那是什么原因呢,求高人指点,若似乎代码的可移植性问题,请说明。谢谢。分不多,请见谅。

  • 写回答

2条回答 默认 最新

  • devmiao 2015-02-09 02:01
    关注

    修改为scanf呢?你用的是scanf_s

    评论

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名