关于C++文件读取问题,要实现的功能是,我输入文件路径和文件名,然后读取文件中的内容

#include<iostream>
#include<string>
#include<stdio.h>
using std::cin;
using std::cout;
using std::string;
using std::endl;
using std::getline;

int main(){
string name; // 文件路径和文件名
FILE *stream; //文件指针
char buf[126];
cout<<"please input the filename:"<<endl;
getline(cin,name,'\n'); //比如说我输入“D:\file.txt”(不知可不可以这样输入,这样name是不是=“D:\file.txt”)
stream=fopen("name","r"); //打开file.txt(fopen中填“name”行不行?)
fgets(buf,126,stream); //把file.txt中的内容保存到数组buf中
for(int i=0;i<=126;i++)
cout<<buf[i]; //输出文件内容
_fcloseall();
}

调试后出错。请教哪位高手,这样编是哪里出了问题,正确的应该怎么弄,谢谢!!
(用控制台编程,主要是要实现读取自定义路径和文件名的文件内容)

#include<iostream>
#include<string>
#include<stdio.h>
using std::cin;
using std::cout;
using std::string;
using std::endl;
using std::getline;

int main(){
string name; // 文件路径和文件名

FILE *stream; //文件指针

char buf[126];

cout<<"please input the filename:"<<endl;

getline(cin,name,'\n'); //输入D:\\file.txt,\\转义为\,转义后的路径就是D:\file.txt
const char *p=name.data();
stream=fopen(p,"r"); //打开file.txt(fopen中填“name”行不行?),不能填name,这就最好加入容错处理
fgets(buf,126,stream); //把file.txt中的内容保存到数组buf中
for(int i=0;i<=126;i++)
cout<<buf[i]; //输出文件内容
_fcloseall();
}
希望能帮到你
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-05
#include<iostream>
#include<string>
#include<stdio.h>
using namespace std;

int main(){
char name[20]; // 文件路径和文件名
FILE *stream; //文件指针
char buf[126];
cout<<"please input the filename:"<<endl;
gets(name); //比如说我输入“D:\file.txt”(不知可不可以这样输入,这样name是不是=“D:\file.txt”)
stream=fopen(name,"r"); //打开file.txt(fopen中填“name”行不行?)必须填变量名称。。
fgets(buf,126,stream); //把file.txt中的内容保存到数组buf中
//for(int i=0;i<126;i++)
cout<<buf; //输出文件内容
_fcloseall();
}
第2个回答  2011-12-05
运行后按“F4”它便会告诉你那里错了,有箭头指向错误的
相似回答