文件操作,谢谢各位了
#include "stdafx.h"
#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
FILE *fp;
string *s=new string;
string a("fdsfads");
s=&a;
int f=26;int l=0;
if ((fp=fopen("test.txt","w+"))==NULL) /*打开只写的文本文件*/
{
printf("cannot open file!");
return 0;
}
fwrite(&f,sizeof(int),1,fp);
fclose(fp); /*关文件*/
if ((fp=fopen("test.txt","r"))==NULL) /*打开只写的文本文件*/
{
printf("cannot open file!");
return 0;
}
fread(&l,sizeof(int),1,fp);
cout<<l;//为什么向文本中写入26但读出来的结果是0,如果写入27,28....等别的数读出来的是正确的,怎么解决,如果想写入26
fclose(fp);
return 0;}
谢谢各位了。。。。。
[解决办法]
fp=fopen("test.txt","wb+")
用二进制方式打开看看,读取那个也一样用二进制的。
[解决办法]
用2进制形式写入和读出,原因的话可能要查下ascii值为26的是一个什么特殊字符吧
[解决办法]
你的代码乱七八遭的,
你试试加个fseek,