标题:“七夕” 闲来无事,为了进一步掌握理解字符串数组,做了一件比较无聊的事情 ...
只看楼主
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:12 
我不太喜欢这种代码排版风格,尤其是花括号

思考赐予新生,时间在于定义
2013-08-13 16:04
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用rjsp在2013-8-13 16:01:56的发言:

1. 为什么要用系统APIs,而不是C/C++标准库?
2. 如果文件打开失败,除了向 Output windows 输出错误提示信息还应该 return 吧
3. "p= (char*)malloc(256);   //每行最多接收256个字符" --- 应该是255个字符吧
4. 我唯一想批评的只有一点,就是无赖的memset
5. windows文本的行间隔符其实是“\r\n”
6. 上面说了最多接受10000行,每行最多接受255个字符,但代码中却没作限制,会溢出的
7. *(p[j]+n) 不如 p[j][n] 清晰
8. 只有malloc,没有free
9. new[]分配的,只能用delete[]释放,不管是不是内建型别,不要听那些半瓶子水的家伙瞎扯。
4、memset  的替代者 是什么  (我就知道这么一个初始化的函数)
2、那段代码是抄袭网上的 我连OutputDebugString(TEXT("CreateFile fail!\r\n"));是虾米意思 还不很清楚呢
1、6楼已经说了->“最初确实这样做的 我对c的fopen fread fseek 系类函数不熟 用不太明白 后来又改掉的了 ”
6、确实没考虑此项  文本文件不是每行不能超过255吗  
7、你说的p[j][n] 我还真不知道 我大部分时间都是在调试  *(p[j]+n)  这个东东
8、忘了 9 不太懂

DO IT YOURSELF !
2013-08-13 16:09
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用love云彩在2013-8-13 16:04:47的发言:

我不太喜欢这种代码排版风格,尤其是花括号
花括号不都这样用吗  比如 if  for  下面只有一条语句 也要用2个花括号 括起来

DO IT YOURSELF !
2013-08-13 16:10
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
得分:12 
学习学习
2013-08-13 16:15
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用wp231957在2013-8-13 16:10:47的发言:

花括号不都这样用吗  比如 if  for  下面只有一条语句 也要用2个花括号 括起来

我猜 love云彩 的意思是
if (xxx) { // 起始花括号在同行
  xxx // 前面两个空格
}

但我认为,代码风格只要和同社区的别人大体一致就行。windows代码的风格一般是
if (xxx)
{
    xxx // 前面4个空格
}

2013-08-13 16:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用幽灵X在2013-8-13 16:15:26的发言:

学习学习
   还是别学我 了  免得误人子弟   我的代码是用来自娱自乐的  嘿嘿

DO IT YOURSELF !
2013-08-13 16:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用rjsp在2013-8-13 16:19:28的发言:


我猜 love云彩 的意思是
if (xxx) { // 起始花括号在同行
  xxx // 前面两个空格
}

但我认为,代码风格只要和同社区的别人大体一致就行。windows代码的风格一般是
if (xxx)
{
    xxx // 前面4个空格
}
几个空格 我不知道啊  我只知道  我要把花括号的位置弄对了  剩下的 alt+f8  vs2010会自动搞定

DO IT YOURSELF !
2013-08-13 16:21
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
以下是引用rjsp在2013-8-13 16:01:56的发言:

7. *(p[j]+n) 不如 p[j][n] 清晰

经测试
        if(buffer[k]!='\n')    //按行扫描
        {
            p[j][n]=buffer[k];    //效率啊  每次仅copy一个字符
            n++;     // n 是干啥的  n是移动个体字符串索引(相当于指针)
        }

这段代码可用   谢谢了  那就代表着  扫描字符串数组中的单个字符  有
*(p[j]+n)
 p[j][n]
这2种方式可以表述  后一种 明显更好理解一些

DO IT YOURSELF !
2013-08-13 16:29
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
得分:0 
以下是引用rjsp在2013-8-13 16:19:28的发言:


我猜 love云彩 的意思是
if (xxx) { // 起始花括号在同行
  xxx // 前面两个空格
}

但我认为,代码风格只要和同社区的别人大体一致就行。windows代码的风格一般是
if (xxx)
{
    xxx // 前面4个空格
}

猜对了,虽然vs有显示每一个起始括号的配对括号,但是在大型项目开发里,你觉得是哪种看得清晰,美观?
if(){
  xxxx;
}把起始花括号写在与if同行,是方便维护和检查,以不至于在修改过程中误删了{。
不过这也是在大型项目开发才要求的细节,平时都是跟着自己的习惯写法走的

思考赐予新生,时间在于定义
2013-08-13 16:38
天楚
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:楚地
等 级:小飞侠
帖 子:550
专家分:2113
注 册:2013-3-14
得分:12 
路过,瞧瞧,嗯,现在的水平木有看懂

没有哪条路好走,选择了,就坚持下去~~~~
2013-08-13 16:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-419023-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.722004 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved