请教C高手们,在哪里寻找经典的C代码呢?

diablolk 2010-02-20 10:21:10
本人初学者,刚看完谭浩强的C,觉得没什么难度,例子和习题基本都会了,虽然编译还经常会出些小错误。想找些经典的代码来看看。现在我用的TC2.0.准备马上转windows下的开发环境了,顺便请教一下是转VC6好还是DEV C++好呢?我主要是练习C,暂时还没学C++,不知道哪个对于C的编译器支持得更好。VC我用了一段时间,好想和TC有很多不同。
先谢过了!
...全文
368 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCCCCCCCCCCCCCC 2010-02-21
  • 打赏
  • 举报
回复
TC太不单纯了...
win下C,VC6足以
引用 2 楼 diablolk 的回复:
请教楼上,真的是这样吗?老师还对我说必须从TC做起,从最单纯的C环境开始才能更好地理解C。。。。我怕VS太多的自动生成代码把自己搞蒙了@@
赵4老师 2010-02-21
  • 打赏
  • 举报
回复
偶写的这个自认为就很经典:
#include <sys\stat.h>
#include <io.h>
#include <fcntl.h>
#include <share.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define MAX_CLU_BYTES 65536
FILE *fo;
int fh;
__int64 offs,offs1;
__int64 rvi64;
int rv,wrv;
unsigned char buf[MAX_CLU_BYTES];
char ofn[_MAX_PATH];
void main(int argc,char **argv) {
if (argc<3) {
printf("Copy File Tail.\n");
printf("Usage:\n");
printf(" cft filename.ext offset_begin[-offset_end]\n");
printf("Copy filename.ext offset_begin[-offset_end] to offset_begin[-offset_end]-filename.ext\n");
printf("Note: Byte at offset_end is NOT included.\n");
printf("Example:\n");
printf(" cft abc.rar 12345\n");
printf("Copy abc.rar offset 12345-end to 12345-abc.rar\n");
printf(" cft abc.rar 123-12345\n");
printf("Copy abc.rar offset 123-12345 to 123-12345-abc.rar\n");
printf(" cft abc.rar 0xAB-0xCD\n");
printf("Copy abc.rar offset 0xAB-0xCD to 0xAB-0xCD-abc.rar\n");
return;
}
rv=sscanf(argv[2],"%I64i-%I64i",&offs,&offs1);
if (rv==0) {
printf("offset %s is not number\n",argv[2]);
return;
}
fh=_sopen(argv[1],_O_BINARY|_O_RDONLY|_O_RANDOM,_SH_DENYWR);
if (fh==-1) {
printf("_sopen %s errno=%d\n",argv[1],errno);
return;
}
if (rv==1) {
offs1=_filelengthi64(fh);
if (offs1==-1i64) {
printf("%I64=_filelengthi64 errno=%d\n",offs1,errno);
_close(fh);
return;
}
} else {//rv==2
if (offs1<offs) {
printf("%s offset_begin>offset_end error\n",argv[2]);
_close(fh);
return;
}
}
rvi64=_lseeki64(fh,offs,SEEK_SET);
if (rvi64!=offs) {
printf("%I64u=_lseeki64 %I64u errno=%d\n",rvi64,offs,errno);
_close(fh);
return;
}
sprintf(ofn,"%s-",argv[2]);
strcat(ofn,argv[1]);
fo=fopen(ofn,"wb");
if (fo==NULL) {
_close(fh);
printf("fopen %s error\n",ofn);
return;
}
cprintf("\n%I64u\r",offs);
while (1) {
rv=_read(fh,buf,(unsigned int)__min(offs1-offs,MAX_CLU_BYTES));
if (rv==0) break;//
if (rv<0) {
fclose(fo);
_close(fh);
printf("_read %s offset %I64u error\n",argv[1],offs);
return;
}
wrv=fwrite(buf,1,rv,fo);
if (wrv!=rv) {
fclose(fo);
_close(fh);
printf("fwrite %s error\n",ofn);
return;
} else {
offs+=rv;
cprintf("%I64u\r",offs);
if (offs>=offs1) break;//
}
}
fclose(fo);
_close(fh);
printf("Copy %s offset %s to %s OK.\n",argv[1],argv[2],ofn);
}
赵4老师 2010-02-21
  • 打赏
  • 举报
回复
对学习编程者的忠告:眼过千遍不如手过一遍!(书看千行不如手敲一行!)

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:
A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程
B初级程序员
C高级程序员
D软件项目经理

如果想从A变成B的话,到我的资源http://download.csdn.net/zhao4zhong1里面下载“适合程序员的键盘练习”
habitzap 2010-02-21
  • 打赏
  • 举报
回复
呵呵,如果了解linux的话,可以看看busybox
水惊鱼 2010-02-21
  • 打赏
  • 举报
回复
孙鑫老师的书和配套讲解视频找来看看..满有系统和组织性的..我正准备学....你也试试?
zkaipen 2010-02-21
  • 打赏
  • 举报
回复
我个人认为很多经典的源代码都是针对一些经典的问题而设计出来的,所以我建议你搜索一些用C解决过的经典问题的算法,针对这些问题尝试着自己编写c代码,然后与原代码进行比较。
c的标准函数库的源代码,linux内核源代码,如果有需要和时间的话,都值得好好研究。
Cowincent 2010-02-20
  • 打赏
  • 举报
回复
我的意思也是 多练多思考就够了 至于编译器 VC6就行...如果有需要再学别的 差也差不了多少的
悠然红茶 2010-02-20
  • 打赏
  • 举报
回复
如果你希望学习windows平台的C编程,可以参考Charles Petzold的《Windows程序设计》。既可以沿用已学到的C知识,又可以熟悉一下windows的运作机制。
mLee79 2010-02-20
  • 打赏
  • 举报
回复
对于C来说, VS20000000 跟 VC6 没有区别,都只支持 C89 ...
qiang81020 2010-02-20
  • 打赏
  • 举报
回复
多练多写。。。VC6足够了。。
tan870426 2010-02-20
  • 打赏
  • 举报
回复
引用 2 楼 diablolk 的回复:
请教楼上,真的是这样吗?老师还对我说必须从TC做起,从最单纯的C环境开始才能更好地理解C。。。。我怕VS太多的自动生成代码把自己搞蒙了@@
实践证明,还是VS20XX才是王道!
lucasma.eth 2010-02-20
  • 打赏
  • 举报
回复
楼主可以看一下<C陷阱与缺陷>, 保证看完之后你就知道自己的C水平
到哪个位置了.
tang056 2010-02-20
  • 打赏
  • 举报
回复
jernymy 2010-02-20
  • 打赏
  • 举报
回复
http://ftp.gnu.org/

http://www.uclibc.org/downloads/

可以下载一些c c++的source code
diablolk 2010-02-20
  • 打赏
  • 举报
回复
请教楼上,真的是这样吗?老师还对我说必须从TC做起,从最单纯的C环境开始才能更好地理解C。。。。我怕VS太多的自动生成代码把自己搞蒙了@@
The_facE 2010-02-20
  • 打赏
  • 举报
回复
把TC2.0扔掉,放弃vc6,直接vs2008或者2010
南气子水 2010-02-20
  • 打赏
  • 举报
回复
MSDN的例子上比较经典呀
南气子水 2010-02-20
  • 打赏
  • 举报
回复
不要过多考虑编译器的事情,用的顺手就行 ,集中精力关注C语言本身!!
ZangXT 2010-02-20
  • 打赏
  • 举报
回复
代码可以看一些简单的,比如linux上一些实用命令的实现
zhao3546 2010-02-20
  • 打赏
  • 举报
回复
建议了解一些操作系统相关的东西,比如进程、线程等这些基本概念;
C语言只是基础,你的知识面还需要进一步拓宽才行。
不知道你是否还是有这种感觉:自己C语言学得不错,但感觉自己做不出啥东西?
如果有这种感觉,那就进一步拓展自己的知识面吧。
加载更多回复(1)

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧