VS code 调试C语言代码

我用VS code 学习C语言,想打印出 Hello World,可是调试之后出现了一个.exe 文件,那个黑色窗口也没有显示出来.
打开.exe文件后出现乱码, 有没有大佬帮我看一下?

这是hello.exe出现乱码
图片说明

这是launch.json 文件代码

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "gcc.exe build active file"
        }
    ]
}

这是tasks.json文件代码

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "gcc.exe build active file",
            "command": "D:\\MinGW\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "D:\\MinGW\\bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        }
    ]
}

我的电脑已经装好了C/C++插件和 run code插件, 以及相应的MinGW, 但是运行的时候那个黑窗窗出不来, 运行后又出现了.exe 文件, 却是乱码.

2个回答

添加系统环境path变量MinGW的bin文件夹,run code 不需要 任何启动配置。切到 .c 文件 点击右上角三角形就可以了。

图片说明

图片说明

如果系统是x86或x64,选择"x86_64", 否则选择"i868"。

posix: 启用 c++11多线程功能。

win32: 没有C++11多线程功能

#include <stdio.h> 
void main()
{ 
printf('hello world \n');
getchar();
}

改一下代码试一下,添加一行" getchar(); " ,意思是等待输入字符。

weixin_45258825
Gao - not understood 我没有设置断点,请问如何让那个黑窗窗出来啊?
2 个月之前 回复
weixin_45258825
Gao - not understood #include <stdio.h> void main(){ printf('hello world \n'); }
2 个月之前 回复
lee_jackgg
我的大神666 回复Gao - not understood: 发一下你的代码。
2 个月之前 回复
weixin_45258825
Gao - not understood 然后如果我用F5开始调试的话,会弹出来 The prelaunchtask ‘g++’ terminaterd with exit code 1
2 个月之前 回复
weixin_45258825
Gao - not understood 我试了安装i686的MinGW-w64,没有出现问题,只是调试的时候黑窗口加载不出来,倒是生成了一个exe的文件。我在控制台输入gcc -g Hello.c -o Hello.exe 之后生成的,但是接着输入./Hello.exe 却没有反应,请大佬再帮忙解答一下,感激不尽!
2 个月之前 回复
weixin_45258825
Gao - not understood 我下载了MinGW-w64 v7.00 但是里面没有bin文件夹, 请问该怎么办?
2 个月之前 回复
weixin_45258825
Gao - not understood 好的,我试试
2 个月之前 回复

是不是在json里输入中文编码的问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
VS code配置c语言环境
用VS code编写c语言,装上了MinGW,也配置了环境,但在VS code中一直出错,网上看了许多也尝试了许多办法还是没解决,有没有大佬能帮我解决一下。 ![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346872_420509.png)![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346884_346422.png)![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346888_200469.png)![图片说明](https://img-ask.csdn.net/upload/201909/01/1567346896_190503.png)
vs code调试不了,代码出现问题没有显示出来,就连调试控制台也没有显示输出的信息
![图片说明](https://img-ask.csdn.net/upload/201908/26/1566808116_893450.png) 求助,求助,求助各位大神,我的vs code调试不了,我调试的是php代码,但是调试不了,什么都没显示出来,就连调试控制台也没有显示输出的信息;哪里出现错误也不知道,各位大神走过的帮我看看哈,谢谢!
VS Code调试程序时无法启动程序
![图片说明](https://img-ask.csdn.net/upload/201908/04/1564921024_826486.jpg) VS Code调试python程序时出现这样的问题,求解~
vs code 调试 c++ error
Unable to start debugging. Launch options string provided by the project system is invalid. “”(十六进制值 0x08)是无效的字符。 第 6 行 代码如下 ``` #include <stdio.h> #include <stdlib.h> int main(void){ printf("hello, world\n"); system("pause"); return 0; } ```
VS Code进行C++程序调试时出现命令窗口一闪而过的问题,不加system(pause)或getchar()等语句的话,要怎么解决
VS Code进行C++程序调试时出现命令窗口一闪而过的问题,不加system(pause)或getchar()等语句的话,要怎么解决
VS code C语言调试提示:lanch:program‘E:\develop\Visual Stodio Code\a.exe'does not exit
大佬们:刚装的环境 学习C语言 代码示例调试时提示:lanch:program‘E:\develop\Visual Stodio Code\a.exe'does not exit。调了半天,请大佬们指出问题在哪? 程序代码 ``` #include <stdio.h> int g_var=0; void print_line(char *str) { if(str!=NULL) printf("%s\r\n",str); else printf("null string\r\n"); } int main(int argc, char const *argv[]) { int l_var=1; print_line("hello world"); printf("g_var=%d,l_var=%d.\r\n",g_var,l_var); return 0; } ``` takks.json ``` { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "command": "gcc", "args": [ "-g", "${file}", "-o", "${workspaceRoot}/hello.exe" ], "problemMatcher": { "owner": "cpp", "fileLocation": ["relative", "${workspaceRoot}"], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } } } ``` lanuch.json ``` { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/a.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "/path/to/gdb.exe",// "miDebuggerPath": "/path/to/gdb" "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": false// "ignoreFailures": true } ], "preLaunchTask": "gcc",//原来没有 } ] ```
VS Code写C语言头文件报错,小白求解~~
![图片说明](https://img-ask.csdn.net/upload/201908/19/1566224664_474482.png) **不知道应该怎么配置这些东西,求大佬解答,谢谢啦!!!
Code Block开源代码使用什么工具编写的,如果Window平台下想修改用什么工具
大家帮帮忙:Code Block开源代码使用什么工具编写的,如果Window平台下想修改用什么工具
VS Code 跳转位置不对
使用VS Code的go to definition,大多数情况跳转正常,但是个别头文件的宏定义一直跳转异常:文件打开正确但行位置不对。 重启软件无效,问题仍存在。 各位大佬知道如何解决吗
修改程序:信源编解码(c语言)
修改程序:问题1。源文件source文本空间太长汉字太多无法运行2,未按频度要求排序 问题描述: 信源编解码是通信系统的重要组成部分。本实验旨在通过程序设计实现基于哈夫曼编码的信源编解码算法。程序具备以下功能: 对于给定的源文档 SourceDoc.txt, 1) 统计其中所有字符的频度(某字符的频度等于其出现的总次数除以总字符数) , 包括字母(区分大小写) 、标点符号及格式控制符(空格、回车等) 。 2) 按频度统计结果生成哈夫曼编码码表。 3) 基于哈夫曼码表进行编码,生成对应的二进制码流,并输出到文件 Encode.dat。 4) 对二进制码流进行哈夫曼解码,把结果输出到文件 DecodeDoc.txt。 5) 判断DecodeDoc.txt与SourceDoc.txt内容是否一致,以 验证编解码系统的正确性。 要求: 1) 用 C 语言实现。 2) 用子函数实现各功能模块。 3) 输出文件 Statistic.txt,包含的信息有:按频度大小排序的字符表,及各字符出现 的次数、频度及哈夫曼编码。 4) 应至少包含链表、二叉树的数据结构。 5) 不能用冒泡排序算法。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h> #include<unistd.h> #include<errno.h> #define N 10000 int count = 0; //每增加一个新的字符, count增加1, 可表示a中的字符种类数, 也即哈夫曼树叶子点个数 /*定义哈夫曼树结构体*/ typedef struct HuffmanTree{ int weight; int parent; int Lchild; int Rchild; }HuffmanTree[2*N]; /*定义储存字符及其出现次数的结构体*/ typedef struct DifferentCharacter{ char char_date; int num; //相同字符出现的次数 char a_code[100]; //每种字符对应的编码 }difcha[N]; /*在一定范围内选择两个weight最小的结点, 并将两个结点的序号赋给s1, s2*/ void select_two(HuffmanTree ht, int j, int *s1, int *s2) { int i = 1, temp; int min1 = 0, min2 = 0; while( (ht[i].parent != 0) && (i <= j) ) i++; *s1 = i; min1 = ht[i++].weight; while( (ht[i].parent != 0) && (i <= j) ) i++; *s2 = i; min2 = ht[i++].weight; if(min1 > min2){ temp = min1; min1 = min2; min2 = temp; } for(; i <= j; i++){ //遍历parent不为0的结点 if(ht[i].parent != 0) continue; if(ht[i].weight <= min1){ min2 = min1; min1 = ht[i].weight; *s2 = *s1; *s1 = i; } else if( (ht[i].weight < min2) && (ht[i].weight > min1) ) { min2 = ht[i].weight; *s2 = i; } } } /*建哈夫曼树*/ void EstHuffmanTree(HuffmanTree ht, int *w, int n){ int i; int s1 = 0, s2 = 0; for(i = 1; i <= n; i++){ //初始化哈夫曼树, 前n个单元存放叶子点 ht[i].weight = w[i]; ht[i].parent = 0; ht[i].Lchild = 0; ht[i].Rchild = 0; } for(i = n+1; i <= 2*n-1; i++){ //后n-1个单元存放非叶子点 ht[i].weight = 0; ht[i].parent = 0; ht[i].Lchild = 0; ht[i].Rchild = 0; } for(i = n+1; i <= 2*n-1; i++){ select_two(ht, i-1, &s1, &s2); //创建非叶子点, 建立哈夫曼树, 每次在ht[1]~ht[i-1]范围内选两个最小的weight结点,并将其序号赋给s1, s2 ht[i].weight = ht[s1].weight + ht[s2].weight; ht[i].Lchild = s1; ht[i].Rchild = s2; ht[s1].parent = i; ht[s2].parent = i; } //哈夫曼树建立完毕 } /*求哈弗曼编码*/ void CrtHuffmanCode(HuffmanTree ht, char **hcd, int n){ int start = 0, c = 0, p = 0, i; char *cd = (char*)malloc(n*sizeof(char)); //分配求当前编码的工作空间 cd[n-1] = '\0'; //从左向右存放编码 for(i = 1; i <= n; i++) { start = n-1; //初始化编码起始指针 c = i; p = ht[i].parent; while(p != 0){ start--; if(ht[p].Lchild == c) cd[start] = '0'; //左分支标0 else cd[start] = '1'; //右分支标1 c = p; //向上倒推 p = ht[c].parent; } hcd[i] = (char*)malloc((n-start)*sizeof(char)); strcpy(hcd[i], &cd[start]); } free(cd); } /*自定义错误处理函数*/ void my_err(char *err_string, int line){ printf("Line %d:\n", line); perror(err_string); exit(1); } /*从 buf_read 中统计每个字符出现的次数,将次数作为该字符的权值*/ void Statistics(difcha a, char *buf_read){ int i, j = 0; for(i = 0; i < strlen(buf_read) ; i++){ //对buf_read中的字符遍历 for(j = 0; j < count; j++){ //检查是否是新的字符 if(a[j].char_date == buf_read[i]){ a[j].num++; //若是旧字符, 则num++; break; } } if(j == count){ //若是新字符, 则记录到a中, 且对应的num++ a[count].char_date = buf_read[i]; a[count].num++; count++; //更新count } } } /*从 SourceDoc.txt 读取数据到 buf_read */ void ReadFile(char *pathName, char *buf_read){ int fd_date; int len = 0; if( (fd_date = open(pathName, O_RDWR)) < 0) //以读写方式打开SourceDoc.txt文件 my_err("open SourceDoc.txt", __LINE__); if(lseek(fd_date, 0, SEEK_END) < 0) //获取文件长度,并保持文件读写指针在文件开始处 my_err("lseek", __LINE__); if( (len = lseek(fd_date, 0, SEEK_CUR)) < 0 ) my_err("lseek", __LINE__); if(lseek(fd_date, 0, SEEK_SET) < 0) my_err("lseek", __LINE__); if(read(fd_date, buf_read, len) > len) //从SourceDoc.txt中读取内容 my_err("read SourceDoc.txt", __LINE__); } /*将 buf_code 写入 Encode.dat 中*/ void WriteFile(char *pathName, char *buf_code){ int fd_code; if((fd_code = open(pathName, O_CREAT|O_TRUNC|O_RDWR, S_IRWXU)) < 0) //创建Encode.dat文件 my_err("open Encode.dat", __LINE__); if( write(fd_code, buf_code, strlen(buf_code)) != strlen(buf_code) ) //将 buf_code 写入Encode.dat my_err("write Encode.dat", __LINE__); } /*主函数*/ void main(){ char buf_read[N] = {'\0'}; char buf_code[N] = {'\0'}; char buf_yima[N] = {'\0'}; char *hcd[N]; char temp[50] = {'\0'}; difcha a; int i, j, n, k = 0, m = 0; int w[N] = {0}; HuffmanTree ht; ReadFile("SourceDoc.txt", buf_read); Statistics(a, buf_read); for(i = 0; i < count; i++) w[i+1] = a[i].num; EstHuffmanTree(ht, w, count); //建HuffmanTree CrtHuffmanCode(ht, hcd, count); //对树中字符进行编码 for(i = 1; i <= count; i++) //将每个字符对应的编码存入结构体 a 中 strcpy(a[i-1].a_code, hcd[i]); FILE *fp1; fp1=fopen("Statistic.txt","w"); for(i = 0; i < count; i++) //查看每个字符的权值和对应的编码 fprintf(fp1,"%c %d %s\n", a[i].char_date, a[i].num, a[i].a_code); fclose(fp1); for(i = 0; i < strlen(buf_read) ; i++){ //遍历 buf_read, 给 SourceDoc.txt 中每个字符匹配编码, 存入 buf_code 中 for(j = 0; j < count; j++){ if(buf_read[i] == a[j].char_date){ strcat(buf_code, a[j].a_code); break; } } if(j == count) //匹配异常 printf("Unknown Character: %c\n", buf_read[i]); } WriteFile("Encode.dat", buf_code); //将 buf_code 写入 Encode.dat 中 ReadFile("Encode.dat", buf_read); //从 Encode.dat 中读取全部编码 n = strlen(buf_read); for(i = 0; i < n; i++){ //为 Encode.dat 中的编码匹配字符 temp[k++] = buf_read[i]; for(j = 0; j < count; j++){ if(strcmp(temp, a[j].a_code) == 0){ buf_yima[m++] = a[j].char_date; break; } } if(j < count){ //匹配成功, 对 temp 初始化 for(;k > 0; k--) temp[k] = '\0'; } } FILE *fp2; fp2=fopen("DecodeDoc.txt","w"); fprintf(fp2,"%s", buf_yima); fclose(fp2); }
VS CODE调试由batch引导启动的JS文件
我的项目中使用batch文件创建启动程序,然后运行项目中的JS脚本,在网上查了一些信息,但都是单纯的调试batch或者JS,请教大神,如何通过batch来调试JS脚本,多谢啦!![图片说明] (https://img-ask.csdn.net/upload/201901/03/1546524433_294252.png)
Code Merging 代码的合并
Problem Description Background Version control is the art of managing changes to information. It has long been a critical tool for programmers, who typically spend their time making small changes to software and then undoing those changes the next day. But the usefulness of version control software extends far beyond the bounds of the software development world. Anywhere you can find people using computers to manage information that changes often, there is room for version control. Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code, and have many features that are specific to software development-such as natively understanding programming languages, or supplying tools for building software. One nice feature that many SCM systems provide is called "Code Merging", which allows a code to be modified simultaneously by two coders. As long as they work on DIFFERENT parts of the code, modifications could be merged gracefully. Consider the following code: void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} int main() { if (today.isSunday()) idle(); } Mr. T added a function "greeting Pan Xi" by changing the original code into: void greetingPX(){ printf("greeting Pan Xi"); } void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} int main() { if (today.isSunday()) idle(); } At the same time, Mr. L added a function "greeting Xue Xiaoyuan" by changing the original code into: void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} void greetingXXY(){ printf("greeting Xue Xiaoyuan"); } int main() { if (today.isSunday()) idle(); } Note that two modifications are made in different parts of the code, so smart SCMs can happily merge them, preserving both new functionalities: void greetingPX(){ printf("greeting Pan Xi"); } void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} void greetingXXY(){ printf("greeting Xue Xiaoyuan"); } int main() { if (today.isSunday()) idle(); } Amazing, right? But life's not always easy. If someone else changed the last part into: if(today.isSunday()) playGames(); And another anonymous coder wrote the following: if(today.isSunday()) goShoppingWithGirlFriend(); I bet no SCM in the world really knows what to do - it totally depends on the coder, though Mr. T and Mr. L both prefer the latter. Task In this problem, your task is to implement the following code merging algorithm: * Each line of a code is considered as an atomic element, so the algorithm actually takes as input two sequences A and B. * Calculates the longest common subsequence (LCS) of these two sequences, denoted by (a1,b1), (a2,b2), ..., (ak,bk), i.e. The ai-th line of code A matches the bi-th line of code B, and k is the length of the LCS. By "matching", two lines should be exactly the same, including whitespace characters. * By the definition of LCS, a1<a2<a3<...<ak, b1<b2<b3<...<bk, which are called match points. We split both sequences into k+1 so-called diff-sections by their own match points, then merge each pair of diff-sections one by one. * Print the merged diff-sections, separated by the lines in the LCS. IMPORTANT: in order for the result to be stable, the integer sequence (a1, b1, a2, b2, ..., ak, bk) should be lexicographically smallest. Thus, the output of the algorithm is always unique. For people who're still confused, here is some more technical information: let M[i] be the i-th match-point, i.e., M[i] = A[ai] = B[bi], DA[i] be the i-th diff-section of A, i.e. DA[i] = {A[ai-1+1 ... ai-1]} (note that a0=0, ak+1=len(A)+1). It's not hard to see that code A can be rewritten as: DA[1], M[1], DA[2], M[2], ..., DA[k], M[k], DA[k+1]. We can define DB[i] similarly. With these symbols, we can easily express the final output of this problem as: merge(DA[1],DB[1]) M[1] merge(DA[2],DB[2]) M[2] merge(DA[3],DB[3]) M[3] ... M[k] merge(DA[k+1],DB[k+1]) Where merge(DA[i],DB[i]) is calculated as follows: * If one of DA[i] and DB[i] is empty, return the other (though it can be again empty) * otherwise, report a conflict, showing content of the diff-sections in both codes (see sample output below). Input The first line contains a single integer T (T <= 20), the number of test cases. Each case contains code A followed by code B. Both codes end with a line containing 9 character #CODE-END (excluding the newline character). Each code contains at most 1000 lines, each line contains no more than 200 characters, and is guaranteed to be followed by a newline character. Output For each test case, print the case number in a separate line, then the merged code. The output of each case should be followed by an empty line, including the last test case. Sample Input 2 void greetingPX(){ printf("greeting Pan Xi"); } void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} int main() { if (today.isSunday()) idle(); } #CODE-END void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} void greetingXXY(){ printf("greeting Xue Xiaoyuan"); } int main() { if (today.isSunday()) idle(); } #CODE-END int main() { if(today.isSunday()) playGames(); } #CODE-END int main() { if(today.isSunday()) goShoppingWithGirlFriend(); } #CODE-END Sample Output Case 1: void greetingPX(){ printf("greeting Pan Xi"); } void idle(){} void goShoppingWithGirlFriend(){...} void playGames(){...} void greetingXXY(){ printf("greeting Xue Xiaoyuan"); } int main() { if (today.isSunday()) idle(); } Case 2: int main() { if(today.isSunday()) //**** CONFLICT STARTS ****// //code in A: playGames(); //code in B: goShoppingWithGirlFriend(); //***** CONFLICT ENDS *****// }
code blocks如何退出调试功能?-?
code blocks如何退出调试功能?-? 打开了之后不知道怎么整了哈哈
如何启动visual code c++代码提示,求解。
Windows7下的visual code ,在指定语言后,代码提示只有历史提示,没有变量,函数,API补全。装了c++推荐扩展后也一样。
同样的代码code::blocks中运行正常,VSCODE中提示collect2.exe: error: ld returned 1 exit statuscollect2.exe: error: ld returned 1 exit status
一段C代码,在code::blocks中运行正常,但在VSCODE中提示C:\Users\ADMINI~1\AppData\Local\Temp\cc3JOmOu.o:test.cpp:(.text+0x93): undefined reference to `gen_Data(void*)' collect2.exe: error: ld returned 1 exit status 代码如下: 头文件: ``` //kpid.h .... typedef struct _Para { ..... } Para; void gen_Data(void *p); ``` .c文件 ``` //kpid.c #include "kpid.h" void gen_Data(void *p) { Para *pa = (Para *)p; ...... } ``` main ``` //main.c #include "kpid.h" int main() { Para p; p.menber1 = 10; //初始化 .... gen_Data(&p) } ``` 1、这段程序在Code::Blocks17.2 中能正常运行,可输出期望结果 2、将struct定义,gen_Data() 函数定义/实现都放到main.c文件中时(代码不变,仅放的位置移动),在vscode中也能正常运行。 3、但如上代码,定义、实现放在单独的.h,.c文件中,在main.c中包含头文件时,运行错误。提示如下。(函数名的拼写是正确的,没错) C:\Users\ADMINI~1\AppData\Local\Temp\cc3JOmOu.o:test.cpp:(.text+0x93): undefined reference to `gen_Data(void*)' collect2.exe: error: ld returned 1 exit status
Ubuntu 下 VS Code debug 一致提示 "boost/test/minimal.hpp"找不导指定目录
Ubuntu 下 VS Code调试 提示 "boost/test/minimal.hpp"找不导指定目录,感觉是环境变量没有设置正确,有谁知道怎么处理吗? ![图片说明](https://img-ask.csdn.net/upload/201907/26/1564138829_867059.png)
code:blockS中用C语言编程时怎么设置才能用C11标准
code:blocks中使用C语言时不支持C11标准,所以不能使用带_s结尾的函数,如strnlen_s(). strcpy_s()等,那么该怎么在CODE:blocks中设置才能使用这些函数,或使其支持C11呢?
vs code 编译时打印中文报错
在做一道练习题的时候需要打印提示语,结果编译的时候报错,因为我不知道是代码问题还是VS code的问题,就用最简单的hello world又试了一遍,还是报错, 请问这个问题如何解决? 报错如图: ![图片说明](https://img-ask.csdn.net/upload/201907/24/1563959773_79718.png) 新手小白最近开始用VS code,但是环境的配置是没有问题的,因为同样的文件把中文改成英文就没问题了 ![图片说明](https://img-ask.csdn.net/upload/201907/24/1563959860_918280.png)
以下代码怎样改正(C语言字符串问题)
``` #define STDC_WANT_LIB_EXT1 1 #include <stdio.h> #include <string.h> int main(void) { char preamble[] = "The joke is:\n\n"; char str[][40] = { "My dog has\'t got any nose.", "How does your dog smell then?\n", "My dog smells horrible.\n" }; unsigned int strCount = sizeof(str) / sizeof(str[0]); unsigned int length = 0; for (unsigned int i = 0; i < strCount; ++i) { length += strnlen_s(str[i], sizeof(str[i])); } **char joke[length + strnlen_s(preamble, sizeof(preamble)) + 1];** if (strncpy_s(joke, sizeof(joke), preamble, sizeof(preamble))) { printf("Error copying preamble to joke.\n"); return 1; } for (unsigned int i = 0; i < strCount; ++i) { if (strncat_s(joke, sizeof(joke), str[i], sizeof(str[i]))) { printf("Error copying string str[%u].", i); return 2; } } printf("%s", joke); return 0; } ``` 错误信息: 1>f:\code\c语言入门经典\字符串和文本的应用\joining_strings.c(21): error C2057: 应输入常量表达式 1>f:\code\c语言入门经典\字符串和文本的应用\joining_strings.c(21): error C2466: 不能分配常量大小为 0 的数组 1>f:\code\c语言入门经典\字符串和文本的应用\joining_strings.c(21): error C2133: “joke”: 未知的大小 1>f:\code\c语言入门经典\字符串和文本的应用\joining_strings.c(23): warning C4034: sizeof 返回 0 1>f:\code\c语言入门经典\字符串和文本的应用\joining_strings.c(31): warning C4034: sizeof 返回 0
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
YouTube排名第一的励志英文演讲《Dream(梦想)》
Idon’t know what that dream is that you have, I don't care how disappointing it might have been as you've been working toward that dream,but that dream that you’re holding in your mind, that it’s po...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问