Visual Studio 使用C++ String打开fstream

3pvhb19x  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(125)

在Visual Studio 2010中,即使使用/Za(struct ANSI)编译器标志,以下代码也可以工作。

string name = "input.txt";

ifstream fin;

fin.open(name);

我能找到的所有文档似乎都表明你必须向ifstream::open传递一个C字符串。现在这真的是ANSI吗?还是微软的扩展,以及/Za标志的问题?
谢啦
扫罗

pw136qt2

pw136qt21#

在C11中,你可以直接传递字符串。Visual Studio 10支持这一点。在C11之前,你必须传递一个c-string,你可以这样做:

fin.open(name.c_str());

相关问题