注册 登录
编程论坛 C++教室

关于c++打开文件

yangweiwei 发布于 2008-10-11 14:19, 1180 次点击
就是想打开任意的文件,比如:fstream  infile("f2.txt",ios::in);这只是打开了固定的文件f2.txt。而我想通过程序打开任意文件,文件名由用此程序的用户从键盘输入。该怎么弄?高手指点。
谢谢!
7 回复
#2
blueboy820062008-10-11 14:24
string str;
cin>>str;
fstream  infile(str.c_str(),ios::in);
#3
yangweiwei2008-10-11 14:36
哦,谢谢楼上,c_str()是类string的函数吗?
#4
lockhawk2008-10-11 18:11
回复 2# blueboy82006 的帖子
问下为什么string的语法我这里不能用?
#include "iostream.h"
#include "string.h"
int main()
{
    string da;
    cin>>da;
    cout<<da;
    return 0;
}

编译错误是:string和da没有声明
#5
weishuiershui2008-10-12 00:13
#include "iostream.h"
#include "string.h"
这两个库是C++标准库里面的,而不是你当前库里面的吧?所以不能这样加载。。。。

应该这样:
#include <iostream>
#include <string>
using namespace std;


int main()
{

    string da;
    cin>>da;
    cout<<da;
    return 0;

}
#6
cayus2008-10-12 01:09
标准库 用<>

自定义库才用""
#7
blueboy820062008-10-12 08:36
[bo][un]cayus[/un] 在 2008-10-12 01:09 的发言:[/bo]

标准库 用

自定义库才用""

不错不错...
#8
blueboy820062008-10-12 08:39
[bo][un]yangweiwei[/un] 在 2008-10-11 14:36 的发言:[/bo]

哦,谢谢楼上,c_str()是类string的函数吗?

是的,
它把string转为C风格字符串...
详见:
basic_string::c_str
const E *c_str() const;
The member function returns a pointer to a nonmodifiable C string constructed by adding a terminating null element (E(0)) to the controlled sequence. Calling any non-const member function for *this can invalidate the pointer.
1