急啊,各位帮帮我!关于读文件的小问题

gxh9314 2009-07-21 04:07:12
#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 100
#define DATA_LEN 20

void main( void )
{
FILE *mPtrfile;
int i;
char mBlockBuffer[BUFFER_SIZE]; //memory chunk
char inputBuffer[BUFFER_SIZE];
memset(inputBuffer, '\0',BUFFER_SIZE);

char * dataBlock = inputBuffer;

if( (mPtrfile= fopen("a.txt", "rb")) != NULL )
{
int ret = fread(mBlockBuffer, DATA_LEN, 1, mPtrfile);

for(i=0; i<DATA_LEN; i++)
printf( "mBlockBuffer[%d]: %c\n" , i, mBlockBuffer[i]);


memcpy(dataBlock, mBlockBuffer,DATA_LEN);

for(i=0; i<DATA_LEN; i++)
printf( "dataBlock[%d]: %c\n" , i, dataBlock+i);

fclose( mPtrfile );
}
else
printf( "File could not be opened\n" );
}

文件a.txt中的内容是:97654321abc
我的问题是为什么两次打印的内容不一样啊?
结果是:
mBlockBuffer[0]: 9
mBlockBuffer[1]: 7
mBlockBuffer[2]: 6
mBlockBuffer[3]: 5
mBlockBuffer[4]: 4
mBlockBuffer[5]: 3
mBlockBuffer[6]: 2
mBlockBuffer[7]: 1
mBlockBuffer[8]: a
mBlockBuffer[9]: b
mBlockBuffer[10]: c
mBlockBuffer[11]: ?
mBlockBuffer[12]: ?
mBlockBuffer[13]: ?
mBlockBuffer[14]: ?
mBlockBuffer[15]: ?
mBlockBuffer[16]: ?
mBlockBuffer[17]: ?
mBlockBuffer[18]: ?
mBlockBuffer[19]: ?
dataBlock[0]: ?
dataBlock[1]: ?
dataBlock[2]: ?
dataBlock[3]: ?
dataBlock[4]: ?
dataBlock[5]: ?
dataBlock[6]: ?
dataBlock[7]: ?
dataBlock[8]: ?
dataBlock[9]: ?
dataBlock[10]: ?
dataBlock[11]: ?
dataBlock[12]: ?
dataBlock[13]: ?
dataBlock[14]: ?
dataBlock[15]: ?
dataBlock[16]: ?
dataBlock[17]: ?
dataBlock[18]: ?
dataBlock[19]: ?
Press any key to continue
...全文
116 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
点墨 2009-08-05
  • 打赏
  • 举报
回复
呵呵,问了问题不过五分钟便自己解决了!
shefg_great 2009-08-05
  • 打赏
  • 举报
回复
printf( "dataBlock[%d]: %c\n" , i, *(dataBlock+i));
fice1989 2009-07-21
  • 打赏
  • 举报
回复
恭喜。。。小错误多吸取经验。。。
winingsky 2009-07-21
  • 打赏
  • 举报
回复
up
clhposs 2009-07-21
  • 打赏
  • 举报
回复
*(dataBlock+i)
gxh9314 2009-07-21
  • 打赏
  • 举报
回复
问题已经解决。
printf( "dataBlock[%d]: %c\n" , i, dataBlock+i);
改为
printf( "dataBlock[%d]: %c\n" , i, *dataBlock+i));
gxh9314 2009-07-21
  • 打赏
  • 举报
回复
自己顶起来
代码下载链接: https://pan.quark.cn/s/cf0000dae7ac 在.NET Framework平台中,`TreeView`组件是一种普遍应用的数据展示工具,主要功能是呈现层级化数据,例如文件系统布局、组织架构图等。本文将深入阐述在C#环境下如何运用递归方法为`TreeView`组件配置子节点,尤其是在管理文件夹层次结构的应用场景中。递归是一种高效的编程策略,其特点在于函数能够自我调用以完成特定任务,这种技术特别适用于处理具有层级关联的数据集合。为了有效运用`TreeView`组件,我们首先需要明确其核心构成单元:`TreeNode`。`TreeNode`是`TreeView`中的一个基本单元,它可以承载子节点,从而构建出树状结构。为了在`TreeView`中准确反映文件夹结构,每一个`TreeNode`通常映射为一个文件夹,而其下属的子节点则对应该文件夹内的子文件夹或文件。现在我们聚焦于核心内容,探讨如何通过递归方式实现子节点的添加。1. **构建基础框架** 我们需要设计一个类来描述文件文件夹,该类应包含名称、路径等基本属性。例如: ```csharp public class FileSystemItem { public string Name { get; set; } public string Path { get; set; } // 其他属性如IsDirectory等 } ```2. **采集文件系统数据** 借助`System.IO`命名空间中的`DirectoryInfo`和`FileInfo`类,对目标目录进行遍历,以获取所有文件和子文件夹的信息。这里可以利用`GetDirectories()`和`GetFiles...
内容概要:本文系统阐述了Java微服务架构与TypeScript全栈工程化的实战方法,涵盖从单体应用拆分到分布式系统治理的完整技术链条。在Java微服务部分,基于Spring Boot与Spring Cloud生态,深入讲解领域驱动设计(DDD)、服务注册与发现(如Nacos、Eureka)、配置中心、API网关(Spring Cloud Gateway)、声明式调用(Feign)、负载均衡、服务熔断降级(Resilience4j/Hystrix)、消息队列异步解耦(Kafka/RabbitMQ)以及分布式事务(如Seata)等核心技术。数据层强调数据库自治原则,并结合Redis提升性能。前端部分聚焦TypeScript类型系统,通过静态类型检查增强代码可靠性,支持泛型、联合类型、映射类型等高级特性,实现前后端接口模型统一。全栈协作采用React/Vue/Angular框架,结合Axios通信与Swagger接口文档标准化。工程化层面引入Docker、Kubernetes实现容器化部署,配合Jenkins或GitHub Actions完成CI/CD自动化流程,并通过ELK实现日志追踪。典型应用场景包括电商、订单管理等系统,实现高内聚、低耦合、可扩展的分布式架构。; 适合人群:具备一定Java与前端基础,从事中高级后端开发、全栈开发或系统架构工作的技术人员,尤其适合1-5年经验并希望掌握微服务与全栈工程化实践的研发人员。; 使用场景及目标:①掌握微服务拆分与Spring Cloud微服务体系建设;②理解服务治理、异步通信、分布式事务等关键问题的解决方案;③构建类型安全的全栈项目,提升前后端协作效率与系统稳定性;④实现微服务的容器化部署与持续交付。; 阅建议:建议结合实际项目边学边练,重点关注架构设计思想与技术选型背后的权衡,同时动手搭建完整微服务链路与前端类型系统,深入理解各组件集成方式与最佳实践。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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