Использование строки C ++ для открытия потока - PullRequest
2 голосов
/ 23 августа 2011

В Visual Studio 2010 следующий код работает, даже с флагом компилятора / Za (struct ANSI).

string name = "input.txt";

ifstream fin;

fin.open(name);

Вся документация, которую я могу найти, указывает на то, что вам нужно передать C-строку в ifstream :: open. Это действительно ANSI сейчас, или это расширение Microsoft, и проблема с флагом /Za?

Спасибо

Saul

1 Ответ

8 голосов
/ 23 августа 2011

В C ++ 11 вы можете передавать строки напрямую.Visual Studio 10 поддерживает это.До C ++ 11 вам нужно было бы передать c-строку, что вы могли бы сделать так:

fin.open(name.c_str());
...