C++文件流的问题
想用C++的ifilestream打开一个在桌面上的文件hello.txt,里面写了一个数字97。程序如下:*******************************...
想用C++ 的 ifilestream 打开一个在桌面上的文件 hello.txt,里面写了一个数字97。
程序如下:
**********************************
#include<iostream>
#include<fstream>
using namespace std;
ifstream file1;
int a;
int main()
{
file1.open("C:\\Users\Administrator\Desktop\asldjkf.txt",ios::in);
file1>>a;
cout<<a<<endl;
system("pause");
return 0;
}
**************************************
但不知为何输出的数据总是 0
求大神指教。 展开
程序如下:
**********************************
#include<iostream>
#include<fstream>
using namespace std;
ifstream file1;
int a;
int main()
{
file1.open("C:\\Users\Administrator\Desktop\asldjkf.txt",ios::in);
file1>>a;
cout<<a<<endl;
system("pause");
return 0;
}
**************************************
但不知为何输出的数据总是 0
求大神指教。 展开
展开全部
// 程序在VC6.0下测试成功
#include <iostream.h>
#include <fstream.h>
void Write(ofstream &out, unsigned int num, unsigned int count, unsigned int data);
void Modify(char *fname, unsigned int num, unsigned int data);
void Print(char *fname);
int main()
{
bool bModify = true;
// 输出数据
ofstream out("key.dat",ios::out);
if(!out)
{
cerr<<"The file key.dat does not exist.\n";
bModify = false;
}
for(int i=0; i<10; i++) // 向key.dat文件输出10行初始数据
Write(out,i,0,0);
cout<<"Finish output the data.\n\n";
out.close();
Print("key.dat"); // 输出文件内容
// 修改数据
if(bModify)
{
unsigned int N,S;
while(1)
{
cout<<"\nEnter the num(N) and the data(S):\n";
cout<<"N:";
cin>>N;
if(N == -1) // 输入-1退出修改状态
return 0;
cout<<"S:";
cin>>S;
Modify("key.dat", N, S);
Print("key.dat"); // 输出文件内容
}
}
return 0;
}
void Write(ofstream &out, unsigned int num, unsigned int count, unsigned int data)
{
// 由于unsigned int取值范围为:0 ~ 4294967295,11个空格间隔可以在修改的时候不影响后面的数据
if(out)
out<<num<<" "<<count<<" "<<data<<" \n";
}
void Modify(char *fname, unsigned int num, unsigned int data)
{
fstream stream(fname,ios::in | ios::out);
if(!stream)
cerr<<"The file key.dat does not exist.\n";
else
{
stream.seekg(0,ios::beg); // 将文件指针移到起始位置
unsigned int n,c,s;
while(!stream.eof())
{
int pos = stream.tellg();
stream>>n>>c>>s; // 读取数据
if(n == num)
{
stream.seekp(pos,ios::beg);
stream<<"\n"<<num<<" "<<c+1<<" "<<data<<" ";
break;
}
}
stream.close();
}
}
void Print(char *fname)
{
ifstream in(fname,ios::in);
if(in)
{
unsigned int n,c,s;
in.seekg(0,ios::beg); // 将文件指针移到起始位置
while(!in.eof())
{ n = c = s = -1;
in>>n>>c>>s; // 读取数据,使用>>重载符可以跳过空格
if(n != -1)
cout<<n<<"\t"<<c<<"\t"<<s<<"\n";
}
in.close();
}
}
#include <iostream.h>
#include <fstream.h>
void Write(ofstream &out, unsigned int num, unsigned int count, unsigned int data);
void Modify(char *fname, unsigned int num, unsigned int data);
void Print(char *fname);
int main()
{
bool bModify = true;
// 输出数据
ofstream out("key.dat",ios::out);
if(!out)
{
cerr<<"The file key.dat does not exist.\n";
bModify = false;
}
for(int i=0; i<10; i++) // 向key.dat文件输出10行初始数据
Write(out,i,0,0);
cout<<"Finish output the data.\n\n";
out.close();
Print("key.dat"); // 输出文件内容
// 修改数据
if(bModify)
{
unsigned int N,S;
while(1)
{
cout<<"\nEnter the num(N) and the data(S):\n";
cout<<"N:";
cin>>N;
if(N == -1) // 输入-1退出修改状态
return 0;
cout<<"S:";
cin>>S;
Modify("key.dat", N, S);
Print("key.dat"); // 输出文件内容
}
}
return 0;
}
void Write(ofstream &out, unsigned int num, unsigned int count, unsigned int data)
{
// 由于unsigned int取值范围为:0 ~ 4294967295,11个空格间隔可以在修改的时候不影响后面的数据
if(out)
out<<num<<" "<<count<<" "<<data<<" \n";
}
void Modify(char *fname, unsigned int num, unsigned int data)
{
fstream stream(fname,ios::in | ios::out);
if(!stream)
cerr<<"The file key.dat does not exist.\n";
else
{
stream.seekg(0,ios::beg); // 将文件指针移到起始位置
unsigned int n,c,s;
while(!stream.eof())
{
int pos = stream.tellg();
stream>>n>>c>>s; // 读取数据
if(n == num)
{
stream.seekp(pos,ios::beg);
stream<<"\n"<<num<<" "<<c+1<<" "<<data<<" ";
break;
}
}
stream.close();
}
}
void Print(char *fname)
{
ifstream in(fname,ios::in);
if(in)
{
unsigned int n,c,s;
in.seekg(0,ios::beg); // 将文件指针移到起始位置
while(!in.eof())
{ n = c = s = -1;
in>>n>>c>>s; // 读取数据,使用>>重载符可以跳过空格
if(n != -1)
cout<<n<<"\t"<<c<<"\t"<<s<<"\n";
}
in.close();
}
}
展开全部
//请把你的文件和程序放在一个文件夹中
//正确程序如下:
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream file;
int a;
file.open("hello.txt",ios::in);
file1>>a;
cout<<a<<endl;
return 0;
}
追问
我这样做确实成功了,但为什么不能随意选择路径呢?一般软件要打开一个文件都可以随意选择路径的啊
追答
不行,一定要指定流的绝对走向!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询