fortunely2
码龄14年
关注
提问 私信
  • 博客:29,224
    社区:963
    问答:9,658
    39,845
    总访问量
  • 暂无
    原创
  • 169,872
    排名
  • 870
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2010-10-11
博客简介:

fortunely2的专栏

查看详细资料
个人成就
  • 获得1次点赞
  • 内容获得0次评论
  • 获得2次收藏
创作历程
  • 1篇
    2015年
成就勋章
TA的专栏
  • java
  • c++
  • digital image processing
  • music
  • android
  • unity3d
  • unity3d shader
  • Mysql
  • xcode s
  • xcode
  • simulator
  • IOS
  • markdown编辑
    1篇
  • git
  • linux
  • 设计模式
兴趣领域 设置
  • 数据结构与算法
    排序算法推荐算法
  • 人工智能
    聚类迁移学习分类回归
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

二维数组*p++真正的含义

答:

你这个写法,不完整,不能清晰表示含义,你的把p的定义写出来。p有可能是一级指针,也有可能是二级指针,也可能是其他:

{
int a[10]={0};
p=a; // 此时p表示一级指针
}
{
int a[10][10]={0};
p = a; // 此时p表示二级指针
}

*p++,解引用(*)的运算符优先级 < 自增运算符(++),所以先是p++,接着*p。因为后置自增不会当前行改变p值,所以这条语句相当于

*p; // 取p所指向的地址的内容
p++; // 对p所指地址+1(个元素)
回答问题 2024.05.13

为什么我的CLion打不了代码

答:

你把当前项目close掉,就能弹出“Welcom to CLion”的向导框了。
不能敲代码、光标闪,这个很奇怪。看你安装的CLion 2023,不知道你的电脑什么配置?我的是17年主流台式机(i5-7500 + 24GB内存),但是带不动CLion2023,有点怀疑是不是配置不够。

回答问题 2024.03.02

[x,y]处为什么有错

答:

'for (const auto& [x, y] : mp)' 这种写法是C++20加入的。可以检查下你的项目,是不是指定支持C++20。
如果用CMake构建的,可以在根目录CMakeLists.txt用下面两行指定:

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED True)
回答问题 2024.03.02

openGL三角形渲染fragmentshader

答:

你有没有发现,vertexShaderSource 没被引用?而fragmentShaderSource 被引用了2次?

回答问题 2024.03.02

cmake error:

答:

上面写得很清楚,路径不存在(No such file or directory)。如果你是想用cmake编译,为什么不直接用cmake-gui,或者在IDE环境下编译呢?
另外,项目路径建议不要有中文和空格字符。

回答问题 2024.03.02

有名管道的一个小例子,但就是跑不通,请问下是怎么回事

答:

你的open就有问题。
不能以O_RDWR(读、写)模式打开FIFO文件,O_RDWR模式打开FIFO文件行为未定义。
使用FIFO文件的方法是:一个进程以只读模式(O_RDONLY)打开FIFO文件,另一个进程以只写模式(O_WRONLY)打开FIFO文件。负责写入FIFO的进程的写入内容,就可以被负责读出FIFO的进程读取到,从而实现通信的目的。

建议你看看我写这片文章:

https://www.cnblogs.com/fortunely/p/14648146.html

回答问题 2023.05.19

验证子串((信息学奥赛的问题)

答:

a, b 是什么类型,std::string?
如果是,那么就没问题。意思是说在字符串a中查找字符串b。
std::string::find()是STL库函数。find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。返回值可以看做一个整型数。

回答问题 2023.05.07

代码无法运行,看不出问题

答:

看起来已经成功运行结束了,因为sum.exe返回值0,也就是你的main函数里面的return 0。
如果你想看到控制台输出,可以在main函数末尾加个getchar(),让控制台等待键盘输入,不是运行完立即结束;或者,用system("pause"),让程序暂停。

回答问题 2023.03.18

uart串口异常,完全不发送数据

答:

可以先判断是哪个模块问题,再分析具体的原因。
考虑下面几点:
1)MCU不能发数据,能收到数据吗?
判断发送功能是否正常。
2)示波器,能检测到波形吗?TX,RX引脚都没有?逻辑分析仪能解析串口数据吗?
判断电脑端是否有问题,判断波特率是否正确。
3)如果是MCU不正常,再判断MCU是否能正常运行,是否支持供电,时钟、波特率是否设置正确。
4)如果是电脑端有问题,判断串口、电脑设置等问题。

回答问题 2023.03.18

如何读取文件中的多行字符串

答:

人家只是告诉你,系统给你的输入格式,类似于下面那个文件。
如果你自己测试,可以自己复制、粘贴到自己代码中,或者用fstream/fopen读取文件。
如果你是在网站上做题,人家应该是有给你留接口的,通常有2种模式:
1)ACM模式,需要自己从标准输入设备读取数据
可以用cin >> s或者scanf("%s", s);,将结果存放到字符串s(std::string for C++, char s[5000] for C)

2)核心代码模式,类似于力扣做题,网站会给你一个标准的接口,通过参数参入。

回答问题 2023.03.18

为什么我用long long 13*1000000000任然溢出

答:

你仔细看提示,溢出的是int类型的13 * 1000000000。
你将结果存放到long long,没有意义,因为溢出的是中间过程。正确的做法是,先提升计算的类型为long long,然后再做乘法。
例如,

long long num = static_cast<long long>(queries[i][1]) * static_cast<long long>(queries[i][2]);
回答问题 2023.03.18

为什么会出现“没有与这些操作数相匹配的运算符”,还有我的代码有什么问题吗?

答:

提问编辑的时候,能把代码放入代码块中吗?

s[i].No 的类型是什么?
是string No[5];,而不是string,很显然,cin << 并不识别string [5]。
改正:要么用string No, 要么用char No[5]。Name成员,类似。

回答问题 2023.03.18

感谢大佬看一下,求累加的和放入x

答:

1到n-1的累加和,放入x吧?

r = r + k;

x = r;
回答问题 2023.03.18

C++的泛型有什么缺点吗?

答:

C++泛型主要是指,通过模板技术,让不同类型的数据,能使用到相同的函数或类中去。

我的理解:
其优点是在编译期,编译期会根据实参进行实例化函数模板或类模板,因此运行速度较快。
其缺点是随着实例化的数据类型和模板数量的增加,代码可能会膨胀,编译速度变慢;如果产生一个编译错误信息,嵌套的模板导致排查问题非常困难。

回答问题 2022.10.20

关于#c++#的问题:vs2022如何实现清除输入缓存

答:

fflush是冲刷流。

#include <stdio.h>
int fflush(FILE *stream);

对于输出流,fflush强迫写所有的用户缓冲数据到指定输出,或通过基础的写函数更新流。
对于输入流关联的可定位文件(如磁盘文件,不能是管道或终端),fflush()丢弃从基本文件获取的,但还没有被APP使用的任意缓冲数据。

你程序中的stdin,通常是指标准输入,也就是终端,而且是输入流,因此用法是错误的。
如果你是想将用户缓冲区内容输出到终端,那么应该使用fflush(stdout);
如果你是想丢弃用户输入缓冲区的内容,那么可以用cin.ignore(numeric_limits::max(),'\n');,详见
在 C/C++ 中清除输入缓冲区_三贝勒文子的博客-CSDN博客_c++清空输入缓冲区
实际上,cin.ignore(n, c)是忽略字符并计数,直到忽略的字符是c,或者忽略的字符数目达到n,才停止。

参考:
fflush(3) - Linux manual page

回答问题 2022.10.20

find_package(Eigen3 REQUIRED NO_MODULE)

答:

看不到你贴的blog。
find_package是CMake命令,应该是位于CMake文件中,通常名字叫CMakeLists.txt。可用IDE比如clion,或者VS2022导入,然后全局搜索。

回答问题 2022.10.20

服务器测试百万并发出现问题

答:

系统分配给进程的文件描述符数量是有限制的,建议你查看一下 最大文件描述符数的限制。如果达到了最大限制值,就修改一下。可以参考我写的这篇文章。

Linux 最大文件描述符数 - 明明1109 - 博客园 最大文件描述符数量 文件描述符是服务器程序的宝贵资源,几乎所有系统调用都是和文件描述符打交道。而系统分配给进程的文件描述符数量有限,因此需要及时关闭那些不用的文件描述符。 Linux对应用程序能打开的 https://www.cnblogs.com/fortunely/p/16213956.html

回答问题 2022.08.22

VS2022提示字符常量中字符过多

答:
  1. 字符串常量(字面量)问题
    单引号('')是用来表示一个(ASCII)字符的,很显然不能用来修饰字符串。把所有字符串如'你是第一次玩吧,那就顺着游玩吧。',都修改为用双引号("")来修饰。

  2. 变量命名问题(非致命)
    gamt,gamr,game 没觉得它们太像了吗?以至于肉眼一眼很难区分。建议用全英文,或者其他容易区分的单词表示。

  3. if 判断条件混乱
    如if (gamt = 3, gamt < 3),哪有人在if语句里面用逗号语句的?一行一条语句,一条语句尽量只干一件事。你这要是在正常一点公司,早就把你干掉了。

else if (game = gamt),没觉得这条语句是错的?是赋值,还是判断是否相等?类似地,if(input=1)条件永远为true。

  1. switch语句使用混乱
    比如`switch(http),switch无法对字符串或者数组进行判断,你这里http是一个字符数组,不能用switch来判断。条件判断可以用if,比如
// C风格判断字符串是否相等
char http[40];
if (strcmp(http, "1") == 0) {
  ...
}

// C++风格判断字符串是否相等
std::string http;
if (http == "1") {
  ...
}
  1. 全局变量使用错误
    input;++,全局变量要在函数内进行操作,不要在函数外部作用域进行赋值操作。另外,你这里input后面加个";"是几个意思?

  2. int函数要有返回值
    int ms() 和int pig()函数返回类型都是int,但是为什么没返回值?

回答问题 2022.08.19

快速排序怎么能够一组数据不同排序?

答:

key用define定义?
那就所有可以的比较,都用define来定义啊,包括 "<"运算符改成函数式。

或者改用template。

回答问题 2022.06.18

While循环switch后有return

答:

有个东西叫在线IDE,可以把大量代码贴到这里,然后生成一个链接。比你这大段代码,没有放到代码块里面好多了。
https://rextester.com/l/cpp_online_compiler_gcc

回答问题 2022.06.17
加载更多