一段代码在devc++可以运行,在vs2019上报错该怎么改?
本帖最后由 晨曦之星 于 2020-5-30 16:33 编辑#include <stdio.h>
int main()
{
char array;
int i, j;
scanf_s("%s", array);
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%c ", array);
}
printf("\n");
}
return 0;
}
我想实现输入123456789
打印
1 2 3
4 5 6
7 8 9
此代码可在devc++运行,但我在vs2019却无法运行,请问这到底是怎么一回事?
https://blog.csdn.net/weixin_44093867/article/details/97525914
scanf_s()的参数没有传全 scanf_s("%s" , 要赋值的数组,最大字符数);
代码:
#include <stdio.h>
int main()
{
char array;
int i, j;
scanf_s("%s", array,9);
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%c ", array);
}
printf("\n");
}
return 0;
} xiaosi4081 发表于 2020-5-30 16:37
scanf_s("%s" , 要赋值的数组,最大字符数);
代码:
打印出错呢。。 晨曦之星 发表于 2020-5-30 16:50
打印出错呢。。
你想要的结果呢? xiaosi4081 发表于 2020-5-30 16:52
你想要的结果呢?
这个是我在devc++的打印结果 KevinHu 发表于 2020-5-30 16:36
https://blog.csdn.net/weixin_44093867/article/details/97525914
scanf_s()的参数没有传全
加了数字后都是问号是怎么回事。 这样试试:
#include <stdio.h>
int main()
{
int array;
int i, j;
scanf_s("%d", array,9);
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%c ", array);
}
printf("\n");
}
return 0;
} 晨曦之星 发表于 2020-5-30 17:00
加了数字后都是问号是怎么回事。
在代码第一行加上#define _CRT_SECURE_NO_WARNINGS然后把 scanf_s 改成 scanf xiaosi4081 发表于 2020-5-30 17:04
这样试试:
这样打出来还是问号 永恒的蓝色梦想 发表于 2020-5-30 17:07
在代码第一行加上然后把 scanf_s 改成 scanf
谢谢大哥,这样确实可以了,但会出现一个弹窗,还有可以解释一下原理吗,我看不懂{:5_100:} 晨曦之星 发表于 2020-5-30 17:31
谢谢大哥,这样确实可以了,但会出现一个弹窗,还有可以解释一下原理吗,我看不懂
第6行改为 array,否则 \0 就写漏了。 永恒的蓝色梦想 发表于 2020-5-30 17:37
第6行改为 array,否则 \0 就写漏了。
好的谢谢{:5_110:}
页:
[1]