#include"iostream.h"
#include"stdio.h"
#include"stdlib.h"
void main()
{
FILE *fp;
int i;
int data[3];
if((fp=fopen("D:\abc.txt","r+"))==NULL)
{
cout<<"can't open file\n";
exit(1);
}
fread(data,sizeof(data),1,fp);
fclose(fp);
for(i=0;i<3;i++)
cout<<data[i];
}
abc.txt的内容是123,为什么运行结果不是显示123而是-869060074-858993460-858993460
怎样改才能显示出123
求教一个关于c++的问题
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
微信扫一扫
分享- 邀请回答
13条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
JY9030 2018-02-23 02:22最佳回答 专家已采纳首先,原来的打印结果是-869060047-858993460-858993460
不是-869060074-858993460-858993460如果要显示123,可以有以下方法:
修改"int data[3];" 为"char data[3];", 原因是在读abc.txt时是按照数据类型读取,int型的读取大小是int*3,总共是12字节,每个int型占4字节(32bit编译环境下),data的内容为0xcc333231,0xcccccccc,0xcccccccc注意数据存储大小尾,对应的就是-869060047-858993460-858993460,若改为char型,则读取大小是char*3,每个char占1字节,则总共占3字节,则数组data[i]的每个元素有一个字符,分别是字符“1”、“2”、“3”,查ascii码表可知对应的十进制码就是31、32、33。另代码在VS2015下正常运行,需要修改以下几行代码:
1.“#include "iostream.h"”改为“#include ”原因是从VS2012开始向C++11标准靠拢,原来的写法编译通不过。
2. 增加“using namespace std;”否则cout关键字无法识别。
3. “if((fp=fopen("D:\abc.txt","r+"))==NULL)”
改为:
“ fopen_s(&fp, "D:\abc.txt", "r+");
if (fp == NULL) ”
原因是fopen()函数改为fopen_s(),以符合C++11标准。
"D:\abc.txt" -> "D:\abc.txt" 文件路径中的斜杠要用转义字符采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
报告相同问题?
相关推荐 更多相似问题
- 2018-02-22 15:27回答 13 已采纳 首先,原来的打印结果是-869060047-858993460-858993460 不是-869060074-858993460-8589
- 2018-09-16 08:14回答 1 已采纳 ans=ans*Pow(jc(n-m),Mod-2)%Mod; 是 ans=(ans*Pow(jc(n-m),Mod-2))%Mod; ans*=Pow(jc(n-m),Mod-2)%Mod
- 2019-12-01 00:11回答 1 已采纳 # 问题解决的话,请点下采纳 ``` #include using namespace std; void fun(int x, int pp[], int* n); in
- 2011-12-27 12:06这是一个值得人深思的事情,希望莘莘学子能都好好的考虑一下这些内容的背后
- 2020-02-10 15:36新川宝宝的博客 新人求教 在使用“<“对string进行比较的过程是什么? 和c语言里面的strcmp的区别? 为什么这两句表达式非法? int i=s2<s3; cout << s2<s3 <<endl; 但这句却没有问题? if(s2<s3) ...
- 2007-08-16 09:12sinux_1983的博客 #include void foo(char* =0); ...上面这段程序在dev-c++中编译通过,但运行结果是 hello, 而且没有捕获到异常。 而在vc6.0中结果却是 hello,catched world! 高手赐教!!
- 2020-06-04 17:07回答 3 已采纳 其他的如楼上 --(*p)是前置-- 所以先执行x-1 (*p)++是后置++ 所以printf之后再执行x+1 所以输出为5和5
- 2015-04-14 08:50回答 6 已采纳 http://www.codeproject.com/Articles/840/How-to-Implement-Drag-and-Drop-Between-Your-Progra 看看有没有帮助~
- 2021-03-21 11:59回答 1 已采纳 你的最大问题出在class ChainList的成员函数bool Insert(char *newName,int newNum,char* newType) newNode->dat
- 2021-02-05 09:49weixin_39609541的博客 该楼层疑似违规已被系统折叠隐藏此楼查看此楼源文件:#pragma once#ifndef __ADOConn_cpp__#define __AODCOnn_cpp__#include "ADOConn.h"#include using namespace std;ADOConn::ADOConn(){}ADOConn::~ADOConn(){}//...
- 2022-03-23 17:00zhiaidaidai的博客 #include #include using namespace std;...= 0) //i==0时来到最后一个要转化的数字 cout [bit[i]] ;//加空格 else cout [bit[i]];//不加空格 } return 0; } 请问为啥不对啊,它老是在return 0后面引发断点。
- 2015-03-25 21:17sf1995的博客 出现LINK错误,写的方式跟以前写的也都差不多,始终不知道错在了哪里,求大牛帮忙解决。//main.cpp #include"Head.cpp" #include #include using namespace std; typedef Car CarInt; Aqueue BianDao;...
- 2021-05-10 00:21回答 6 已采纳 #include <stdio.h> void main() { char c; int count[10] = {0,0,0,0,0,0,0,0,0,0}; p
- 2016-08-14 06:43回答 2 已采纳 1)//拷贝构造函数 应为为 Com(const Com&c):i(c.i),j(c.j){}; C++11: 最好写两个 拷贝构造函数,一个拷贝,一个移动 Com(const Com&c):i
- 2016-11-16 16:53回答 1 已采纳 包含b头文件,然后申明C为友类
- 2020-09-14 08:20一根插在大象鼻子里的葱的博客 版本:vs2019 问题:无法调用标准库中的sort函数 代码
- 2021-05-19 19:49weixin_39849930的博客 C语言求教 一个算概率的问题,c语言概率计算C语言求教 一个算概率的问题,c语言概率计算匿名网友:----------------------int f6,ok;/--------------------------------放代码:/:150/:%d/%d\getch()!cardi) return,i;-...
- 2012-06-18 14:29snake_pass的博客 The local macro xxx is not visible in the current source....其中,“xxx”代表的是一个文件中定义的宏。经检查,包含该宏定义的文件,已经包含在此文件中,就是不知道为什么会报出这个错?向csdn的高手大牛们求教啊
- 2018-11-18 09:02回答 2 已采纳 **# 根据你的要求, 修改了uip的类型, 和TragetToIpAndProt函数按":"拆分的地方, 下面附上代码和执行结果** ``` int iNum = 0; char ui
- 2012-08-01 10:15wxwaiwll的博客 代码如下: template class Singleton ...编译时出现链接错误:Error 1 error LNK2001: unresolved external symbol "private: static class MyPragma * Singleton...各位大大们来看下这是什么一个情况?
- 没有解决我的问题, 去提问