我在下面程序尝试的时候,没有错误,但是一移到我现在做的工程中就出现这种错误
#include <stdlib.h>
#include <io.h>
#include <afx.h>
#include <fstream>
#include "iostream.h"
#include <MALLOC.H>
using namespace std;
void main()
{
//读文件
fstream filewrite("c:\\text.txt",ios_base::out);
char buf[] = "20";
filewrite.write(buf,sizeof(buf));
filewrite.close();
//读取文件内容并输出
int len;
char* buf1;
//fstream sfs;
//sfs.open(TEST_FILE);
fstream sfs("c:\\text.txt");
//定位到文件末尾
sfs.seekg (0, ios_base::end);
//返回地址,也就相当于获得文件的长度
len = sfs.tellg();
//获取完毕之后,将文件指针提到前面
sfs.seekg (0, ios_base::beg);
buf1 = new char[len];
sfs.read(buf1, len);
cout << buf1 << endl;
int cishu;
int *pass;
FILE *fp;
fp=fopen("c:\\text.txt","r");
if (fp==NULL)
{
printf("文件无法打开!\n");
return;
}
else
while(!feof(fp))//如果没有读到数据
{
pass=(int *)malloc(sizeof(int));
fscanf(fp,"%d\n",pass);
cishu=*pass;
cout<<cishu<<endl;
free(pass);
}
cishu--;
fstream filewrite2("c:\\text.txt");
filewrite2<<cishu<<endl;
delete []buf1;
sfs.close();
}
同一个cpp文件里面,ifstream 和ofstream都可以正常使用 我把fstream换成ifstream就不出错,没解决掉,最后没办法都换成ifstream 和ofstream了
还有例如fstream filewrite("c:\\text.txt",ios_base::out); ios_base::out是需要
using namespace std; 的 但是我加入using namespace std;后无法找到std命名空间,
将#include <iostream.h>改为#include <iostream>即可,因为#include <iostream.h>是旧的编译方式。
但是修改后 会出现 error C2872: 'ofstream' : ambiguous symbol
vc++编译器真是喜欢开玩笑啊!!!无奈取消使用命名空间ios_base::out等全部删除掉