我自己独立写的第一个C程序,哈哈

countstars 2009-08-29 03:33:00
嘿嘿,写了半个小时左右,调试时间5分钟

/**
* 获取用户输入的字符串,打印行号
* skchen @ 2009.08.29 03:03
*/
#include <stdio.h>
#include <stdlib.h>

#define MEM_SIZE 100

void main() {
//行号
int line_num = 1;
//行字符数
int char_num = 1;
//行指针
char *line = NULL;
//用户输入的字符
char c;
//已分配内存大小
int total_mem_size = 0;

while ((c = getchar()) != EOF && c != '\n') {
do {
//看看内存空间是否足够用,要留一位给\0
if (total_mem_size < char_num) {
//分配扩大内存空间
line = realloc(line, total_mem_size + MEM_SIZE);
if (line == NULL) {
printf("动态内存分配错误!程序退出!\n");
exit(EXIT_FAILURE);
}
//如果分配成功,内存总分配大小加上去
total_mem_size += MEM_SIZE;
}
//把字符给数组
line[char_num - 1] = c;
char_num++;
//继续获取字符
c = getchar();
//判断是否回车,如果不是则未结束,继续循环
} while (c != '\n');
//添加字符串结束符
line[char_num - 1] = '\0';
//打印结果
printf("line: %d, length: %d, size: %d, string: %s\n", line_num, char_num, total_mem_size, line);
//释放内存
free(line);
//指针重新置为NULL
line = NULL;
//内存大小置为0
total_mem_size = 0;
//字符长度初始化为1
char_num = 1;
//行号+1
line_num++;
}
exit(EXIT_SUCCESS);
}
...全文
941 点赞 收藏 84
写回复
84 条回复
切换为时间正序
请发表友善的回复…
发表回复
leizhu_125 2009-09-10
确实比较厉害
回复
wyrf584 2009-09-10
我现在还是只会写HELLO WORLD
回复
afx_zjf_afx 2009-09-09
呵呵,,,不错啊,,,,,,,,和我刚开始时差不多,,,
不过我的风格没有你的好,,,,
回复
dushuchen 2009-09-09
第一个程序 还会调试?

回复
yangguangjie 2009-09-09
楼主的第一个程序 比我写的第一个程序 "hello world!" 长太多了,我是菜鸟菜鸟菜鸟
回复
maomao257 2009-09-09
都是牛人,哎就我是菜鸟
回复
wufeng1200 2009-09-09
加油,一起!
回复
wissup 2009-09-09
1、char c ; 应该声明成 int c;因为char c的定义,无法让c得到EOF的值。

2、void main(),应该写成:int main(void)或是main带命令行参数才符合ANSI C标准,这个貌似只是符合C++的标准。

3、代码风格还行,不过多动手时编程。

4、看上去不像写的是第一个程序,因为如果是C语言第1个程序的话,代码风格不是拷贝的就是模板来的,呵呵!没有诋毁的意思哈,不过还是加油LZ,哈哈哈!
回复
Gao19870101 2009-09-09
我都忘记自己第一个C语言的程序了,但是记得写Hello World最多了。
回复
aneng1999 2009-09-09
哥们儿有前途
回复
kfc423 2009-09-09
哥们我看好你你继续吧。一直这么牛下去。
回复
yufeng7794 2009-09-09
比我写的好多了第一个
回复
sswwssww 2009-09-09
我的printf..................
回复
Caballeroo 2009-09-09
我都不记得我一个程序是什么了,楼主第一个程序就会用内存分配,还是值得赞扬的!
回复
liaojian34 2009-09-08
我第一个是九九乘法表
回复
y510976532 2009-09-08
很不错,我也学c语言不久,值得学习!
回复
[Quote=引用 44 楼 countstars 的回复:]
我学了七八年PHP和JS,呵呵,不好意思献丑了
当然大学的时候hello world也写过,我这是工作好几年后又拿起书本学习C语言写的。
注释可以帮助自己记忆,忘记了再看一下就记起来了,现在记忆不如以前了。
以前用TC2痛苦死,现在发现VS2008很好用。
多谢大家的鼓励,这几天连续看了几本书,写了几十段代码片段,头皮都发麻了。
[/Quote]

现在是在恢复期啊。我就说第一个程序怎么就知道指针数组这些东西呢。不过加油,我也在奋斗
回复
[Quote=引用 10 楼 bingyuvsbingshuang 的回复:]
我学了半年也没学到这种层次,楼主很牛。。
[/Quote]

不会吧,老兄。你也太弱了吧。谦虚了吧。
回复
sdhhqb 2009-09-06
lz很牛。。。
回复
JiaBei_289450062 2009-09-06
有前途呀
回复
发动态
发帖子
C语言
创建于2007-09-28

6.2w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告