c - 来自 gcc -0 文件 file.c 的 exe 文件在 vsc 终端中不起作用
问题描述
我正在尝试设置 VSC,以便我可以编译和运行 C 和 C++ 代码。
我已经安装了 ms-vscode.cpptools 扩展。
我已经遵循了这个https://code.visualstudio.com/docs/cpp/config-mingw并且可以运行gcc
和g++
命令,但是当我运行实际的 exe 时,什么也没有发生。
我在 SO 上找到了很多答案,但没有任何效果。我不敢相信在 VSC 中运行 C/C++ 代码有多么困难。
这个简单的代码:
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
// declarare
int m, n;
FILE *fis;
char numef[256];
float **a;
printf("Introduceti calea catre fisier: ");
gets(numef);
fis = fopen(numef, "rb");
if (fis == NULL)
{
printf("Nu s-a putut deschide fisierul %s", *numef);
exit(1);
}
else
{
printf("Am deschis fisierul %s", *numef);
}
return 0;
}
此代码输出:
printf("Introduceti calea catre fisier: ");
但它也应该输出printf("Nu s-a putut deschide fisierul %s", *numef);
or printf("Am deschis fisierul %s", *numef);
。
解决方案
您printf("...", *numef);
在线路上遇到段错误。您可以删除*
之前的numef
内容,它应该可以按您的意愿工作。这是因为当您在 C 中定义一个数组 ( char numef[256];
) 时,名称 ( numef
) 就变成了一个指针。然后,当您使用它时,printf()
您可以简单地使用指针numef
。
推荐阅读
- c# - Blazor 表单提交不会触发
- visual-studio-code - VSCode - 语言服务器 - 将语法文件添加到 package.json 时代码完成停止工作
- stored-procedures - 带有回滚功能的存储过程修改
- sql - 在 SSMS 18 中更改格式并从时间中删除纳秒
- node.js - 禁用并行快速路由访问
- angular - Angular 中的 DefaultIterableDiffer 已弃用。我现在该怎么办?
- javascript - Javascript在函数中增加一个变量
- class - Kotlin - What is the point of private variables inside private companion objects?
- javascript - 将字符串中的所有浮点数相乘
- java - 使用三个堆栈的回文 - 仅输出是“是回文”(java逻辑错误)