理解大型代码的问题以前已得到很好的解答.但是我觉得我应该再问这个问题来问我一直面临的问题.
我刚开始做学生工作.我是一名初学程序员,两个月前刚刚学习了课程.虽然在工作中,我已经交了一个代码,它是大软件的一部分.我理解该代码应该做什么(读取文件).但是在花了几周时间试图理解代码并对其进行修改以达到我们想要的结果之后,我得出结论,我需要理解该代码的每一行.代码大约是1300行.
现在,当我开始阅读代码时,我发现,例如,变量定义为:
VarType VarName
Run Code Online (Sandbox Code Playgroud)
现在VarType不是类型int或类型float.它是用户定义的类型,所以我必须去上课看看这个类型是什么.
在下一行中,我看到一个被调用的函数,如points.interpolate(x); 现在我必须进入另一个类,看看插值函数的作用.
这种情况发生了很多,这意味着即使我试图理解代码的一小部分,我也要去3或4个不同的类,并且一次性地记住它们而不会失去主要目标,这很难.
我可能不是一个熟练的程序员,但我希望能够做到这一点.我可以提出一些建议吗?
另外(当我问这个时,我听起来真的很愚蠢)什么是调试器?我希望这可以让你了解我的立场(以及再次提出这个问题的必要性).:(
我有以下IF声明,我无法弄清楚它的含义:
if (data->tokens.size())
{..
//reads each token in a for loop and assigns each token to a variable...
}
Run Code Online (Sandbox Code Playgroud)
令牌中有六个值,所以tokens.size()应该返回6,对吧?
我不明白为什么我们需要if条件呢?据我所知,如果条件将tokens.size()返回1,则返回1,如果返回0则返回false .
在我的情况下,它返回6(或任何数量的令牌,可以是任何数字,而不只是0或1).那么如果条件有效呢?
换句话说,我想知道在获得0和1以外的值时如何处理.
我有两个函数read()和write().我在read()函数中读取了一个文件,并在变量的标题中存储了一行.现在我希望该write()函数将相同的行写入新文件.但是,我如何使用来自其他函数的相同变量或信息?这样做的方法是什么?
以下是有关代码的一些信息:
在包含必要的文件后,它说明了这一点
HX_INIT_CLASS(HxCluster,HxVertexSet);
Run Code Online (Sandbox Code Playgroud)
该类的名称是HxCluster,如果有人能告诉我为什么它不像我们以简单的方式定义类,那将是很好的: class class_name {};
我有很多功能,其中两个是read()和write().它们都只采用一个参数,即在相应的情况下要读取的文件和要写入的文件.我不知道为此编写代码是否有用.
我想在现有文件上写一些数据.它是一个包含大约8-10行标题(#comments)然后包含数千行的文件data values.我想要的是保持标题相同,但将更新添加data values到文件.很可能在更新后我的行数较少data values.
所以基本上我想删除标题中最后一个#comment之后的所有内容,然后从那里开始编写新值.那可能吗?
这是一个例子:
原始文件
#Program
#Date
#Hello
0 23 23 54
1 12 4 2
2 253 786 9887
3 3 23 54
4 1 4 4
5 23 6 81
Run Code Online (Sandbox Code Playgroud)
更新后的文件
#Program
#Date
#Hello
0 2 23 54
2 253 786 9887
5 23 6 81
Run Code Online (Sandbox Code Playgroud)
我正在编辑的代码fopen用于读取文件并fprintf写入文件.我希望如果答案是这样的,那么我就不必改变那两个.