vscode 中scanf()无法读入中文怎么办?
发布网友
发布时间:2022-04-23 07:07
我来回答
共1个回答
热心网友
时间:2022-04-28 10:14
更新 (2021/05):
终于发现完美解决方案了!
如果你用的编译器是 gcc 系列,可以设置编译器参数来解决这个问题:
-finput-charset=UTF-8 -fexec-charset=GBK
第一个参数指定被编译文件编码为 utf-8,第二个参数指定输出的二进制文件编码为 gbk,即中文 windows 系统默认编码,除此之外不需要改动任何地方,非常舒服!
------------------------------------------
以下为原回答 (2020/04):
vscode debug 中文乱码和没中文都是老问题了,但是正常运行的时候不乱码还是可以做到的。
要检查和匹配两个地方的编码:
内置终端
新开一个内置终端(现在windows一般都是 powershell 了吧),敲命令 chcp
936 对应 GB 2312,65001 对应 UTF-8,windows 中文系统默认是 936。
2. 你的代码文件
看最下面的 UTF-8,说明这个文件是 UTF-8 编码,点击它,选择第二项以编码保存
找到 GB 2312 确定
这样你的文件就以 GB 2312 编码保存了,之后你编译运行应该是可以正常显示和输入中文了。
我的电脑测试结果是两边都是 GB 2312 可以完美中文,两边都是 UTF-8 则只能显示中文而不能正常输入(这个有点奇怪),debug 两个都不行……
等一个高手来个万能的解答
vscode 中scanf()无法读入中文怎么办?
vscode debug 中文乱码和没中文都是老问题了,但是正常运行的时候不乱码还是可以做到的。要检查和匹配两个地方的编码:内置终端 新开一个内置终端(现在windows一般都是 powershell 了吧),敲命令 chcp 936 对应 GB 2312,65001 对应 UTF-8,windows 中文系统默认是 936。2. 你的代码文件 看最下面的...
vscode运行C的scanf函数卡住不动
把scanf的%f后面的空格删掉就可以了。scanf内的任何空格会匹配并吃掉一系列空白字符,直到遇到一个非空白字符。所以scanf一直卡在那里了。你的程序如果输入500^Z(ctrl+Z)也可以运行。ctrl+Z回车会输入^Z,代表输入结束,模拟文件读取时的读到文件尾。有时候你需要回车,在新的空行输入^Z再回车,而且...
vscode输出结果的方式是什么?
可以使用如下的C语言程序代码从键盘输入8个整数并存入一个一维整型数组中:include <stdio.h> int main() { int arr[8];int i;printf("请输入8个整数:\n");for (i = 0; i < 8; i++) { scanf("%d", &arr[i]);} printf("输入的8个整数为:\n");for (i = 0; i < 8; ...
我用VSCode用C写了一个很简单的hello world,但是无法编译和调试 用C语 ...
打开launch.json 把program那一项改成${workspaceRoot}/xxx.out,或者改成其他的放置out文件的目录
编译运行的c程序不能输入?
scanf("%d", &t);不要再scanf中随意加\n,不是表示要求用户输入回车符,而是忽略一切空白符,直至下一个非空白符输入
Vscode定义大小为10的数组,但是输入10个字符后再printf后输出位数不...
你只能输入9个,最后一个是\0留给字符串结尾用
c语言编程题(1)从键盘输入一个2-99之间的数据,判断该数是否为同构数...
include<stdio.h> void main(){ int a,b;while(scanf("%d",&a)!=EOF){ b = a*a;if( b/100 == a || (b%1000)/10 == a || b%100 == a || b%10 == a || b/10 == a )printf("YES\n\n");else printf("NO\n\n");} } 运行结果如图 欢迎指正!
C语言中,把数据储存在txt文件中的代码怎么写的?
c语言,把数据存在txt文件里,需要使用fopen函数以写文件的方式打开文件。然后可以使用fprintf,fputc,fputs,fwrite等函数,把相应类型的数据写入文件。最后,写入完成后使用fclose函数关闭文件。下面的C语言程序源程序展示了合并A.txt和B.txt两个TXT文件的内容存储到到新建的一个TXT文件,C.txt。include <...
怎样使用ascll和vscode生成随机的整数?
可以使用如下的C语言程序代码从键盘输入8个整数并存入一个一维整型数组中:include <stdio.h> int main() { int arr[8];int i;printf("请输入8个整数:\n");for (i = 0; i < 8; i++) { scanf("%d", &arr[i]);} printf("输入的8个整数为:\n");for (i = 0; i < 8; ...