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
求大神指教。
展开
 我来答
鸩羽054号裳
2014-08-22 · TA获得超过154个赞
知道答主
回答量:111
采纳率:0%
帮助的人:54.5万
展开全部
// 程序在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();
}
}
SXMiaoChuang
推荐于2016-05-21 · 超过18用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:28.3万
展开全部
//请把你的文件和程序放在一个文件夹中
//正确程序如下:
#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;
}
追问
我这样做确实成功了,但为什么不能随意选择路径呢?一般软件要打开一个文件都可以随意选择路径的啊
追答
不行,一定要指定流的绝对走向!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式