社区
Linux/Unix社区
帖子详情
UNIX下c编程的奇怪问题
angel518
2009-06-08 05:58:50
有文件,内容如下:
fjdhh大幅度#的ddfdl@@
偶定义了一个数组buf[50],先fgets把文件内容读到buf中,然后用变量k遍历,如下:
while(buf[k]!=NULL)
printf("%s",buf[k]);
可编译的时候总要报错:
(coredump)
请问这是怎么回事?难道buf[k]!=NULL有问题?
对尾部的@@,如何用strcmp进行比较呢?
...全文
39
10
打赏
收藏
UNIX下c编程的奇怪问题
有文件,内容如下: fjdhh大幅度#的ddfdl@@ 偶定义了一个数组buf[50],先fgets把文件内容读到buf中,然后用变量k遍历,如下: while(buf[k]!=NULL) printf("%s",buf[k]); 可编译的时候总要报错: (coredump) 请问这是怎么回事?难道buf[k]!=NULL有问题? 对尾部的@@,如何用strcmp进行比较呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Joan201401
2009-06-09
打赏
举报
回复
UP
happybeginner
2009-06-09
打赏
举报
回复
贴全部代码吧 应该不长~~~ 也不难
jianzhibeihang
2009-06-09
打赏
举报
回复
感觉lz思维很混乱
xharry
2009-06-08
打赏
举报
回复
好久没有用c了,看到楼主的问题,我比较好奇,我来回答你第一个问题:
首先,我怀疑你漏打了k++,因为你的代码中
while(buf[k]!=NULL)
printf("%s",buf[k]);
k始终是它的初始化值,这样会死循环
我觉得你的代码是这样的
int k = 0;
while(buf[k++]!=NULL)
printf("%s",buf[k]);
不过依然有错,楼上已经用朋友回答你的问题,你应该用printf("%c", buf[k]),而不是%s,为什么你用%s会core dump呢。
你定义的是数组,而不是一个指针。所以你可以试试看如下的语句:
char buf[10] = "ssdf";
printf("%x\n", buf) // 打印出ffbffd2c
printf("%x\n", buf[1]) // 打印出73
你可以看到,第一件打出的是一个内存地址,而第二句打出的是73,很明显,它是's'的ASCII码。我们知道printf("%s"...)接受的参数是一个内存地址,而73很明显不是一个标准的地址,通常会core dump
请参考。
帅得不敢出门
2009-06-08
打赏
举报
回复
貌似 楼主的问题不是问题
不是问题的成了问题
猫已经找不回了
2009-06-08
打赏
举报
回复
printf("%c",buf[k]);
大哥,我都服了你了
neohope
2009-06-08
打赏
举报
回复
buf[50]你怎么定义与操作的?
once_and_again
2009-06-08
打赏
举报
回复
printf ,scanf 稍不留意,就出现致命的错误.
angel518
2009-06-08
打赏
举报
回复
问题精简错误了!
问题应该是这样的:
有文件,内容如下:
fjdhh#大幅度#的ddfdl#@@
偶定义了一个数组buf[50],先fgets把文件内容读到buf中,然后用变量k遍历,遇到#就把两个#之间的字符串放入temp变量中,如下:
while(buf[k]!=NULL)
printf("%s",temp);
可编译的时候总要报错:
(coredump)
请问这是怎么回事?难道buf[k]!=NULL有问题?
对尾部的@@,如何用strcmp进行比较呢?偶用strcmp(temp,"@@")没用啊,报(coredump)错!
wuyu637
2009-06-08
打赏
举报
回复
printf("%c",buf[k])
Linux下C语言
编程
第1章 Linux下C语言
编程
简介 本章将简要介绍一下什么是Linux,C语言的特点,程序开发的预备知识,Linux下C语言开发的环境,程序设计的特点和原则以及编码风格等。通过本章的学习,可以对在Linux下使用C语言
编程
有一个基本的了解。 1.1 Linux 简 介 Linux是能够自由传播并继承了
UNIX
内核的操作系统,是对
UNIX
的简化和改进,它既保留了
UNIX
系统的高安全性,同...
《精通
Unix
下C语言与项目实践》读书笔记(3)
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhuyunxiang.blog.51cto.com/653596/161298《精通
Unix
下C语言
编程
与项目实践》读书笔记(new)文章试读不拘一个遍程序系列:
编程
序不能一个脑袋钻到底,有
华为C语言
编程
规范(精华总结)
“编写程序应该以人为本,计算机第二。” ...
学习
Unix
,可从事什么样的工作(1)《精通
Unix
下C语言与项目实践》读书笔记(3)...
《精通
Unix
下C语言
编程
与项目实践》读书笔记(new) 文章试读 不拘一个遍程序系列:
编程
序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国。一、二、三、四 职场规划:一些杂七杂八的职场感悟吧。不值钱的软件人才精力充沛与事业成功让系分来得更猛烈些吧不值钱的系统分析师经济危机下大学生如何就业 我的诗歌:都是我的打油诗...
初识Linux下C语言
编程
本章将简要介绍一下什么是Linux,C语言的特点,程序开发的预备知识,Linux下C语言开发的环境,程序设计的特点和原则以及编码风格等。通过本章的学习,可以对在Linux下使用C语言
编程
有一个基本的了解。 1.1 Linux简介 Linux是能够自由传播并继承了
UNIX
内核的操作系统,是对
UNIX
的简化和改进,它既保留了
UNIX
系统的高安全性,同时也使其操作更加简单方便,从而使单机用户也可以使
Linux/Unix社区
23,217
社区成员
74,540
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章