在VS Code中运行C程序输入字符串后出现异常,请求技术支持
VS Code运行C程序输入字符串后出问题的解决办法
先检查输入函数用法
要是用scanf("%s", str)读字符串,它碰到空格或回车就停,回车符会留在输入缓冲区里,后面再用输入函数就会直接读这个回车。要么在scanf后面加getchar()清缓冲区,要么换fgets(str, sizeof(str), stdin)读整行(记得手动删掉末尾的换行符,比如str[strcspn(str, "\n")] = '\0';)。排查编码不匹配问题
VS Code终端编码和程序输出编码不一样会导致乱码。可以在设置里搜terminal.integrated.defaultProfile.windows(Windows系统),换成命令提示符;或者把终端编码改成UTF-8,同时编译时加参数-fexec-charset=UTF-8(Linux/macOS)或者-fexec-charset=GBK(Windows)。检查程序内存是否越界
字符串数组太小的话,输入内容超过长度会导致内存越界,出现乱码。比如定义char str[100];,确保能装下输入的内容加结束符'\0'。试试用外部控制台运行
打开.vscode/launch.json,把externalConsole改成true,用系统自带的控制台运行程序,能避开VS Code集成终端的一些交互问题。示例配置片段:"externalConsole": true
内容的提问来源于stack exchange,提问作者Teddy
相关产品推荐
相关产品推荐

