vs code编译c语言,无法写入中文 到字符串中
使用vs code运行c语言时,使用gets()和scanf()都无法将中文写入自定义的字符串中,而其他编译器却可以
运行的代码:
#include
int main()
{
char a[20]={};
gets(a);
printf("中文:%s",a);
}
使用vs code:
输入输出
使用Dev-c++:
使用vs code似乎根本没有将中文字符写入进字符串中,但用Dev-c++却可以正常写入,是编译器的问题吗?有办法解决吗?
看看你的页面的编码格式是什么,是不是utf8
使用宽字符输出看看。
#include<wchar.h>
#include <stdio.h>
int main()
{
wchar_t a[20];
wscanf(L"%ls", a);
wprintf(L"中文:%ls", a);
return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:解决这个问题有两个方法
1.一个是打开vs 项目选项看到最后一个选项属性
将SDL检查禁用
2.在文件.c中第一行插入下面这段代码;
#define _CRT_SECURE_NO_WARNINGS
在每个文件的开头都插入显然略显麻烦,所以还有一个一劳永逸的方法,下面我来介绍一下。首先找到你的vs安装路径找到这个文件newc++file.c将他复制到桌面上然后在将上面一段代码复制进去,再将这个文件复制回原来的路径底下。替换原来的文件即可。*那么这里为什么要这莫做呢,因为当你在原来路径直接更改newc++file.c会提示你没有权限更改。