2016-07-05 2 views
1

Итак, я кодировал консольное приложение на C++ с использованием File-IO. В C++ для применения файла io вы импортируете один из трех заголовков: <ifstream>, <ofstream> и <fstream>. В Visual Studio Сообществе 2015, в первый, когда я писал этот код:Являются ли в потоке и потоке нестандартные заголовки C++?

#include <ifstream> 
int main() 
{ 
    std::ifstream inf("testingifstream.txt"); 
} 

Первое, что я заметил сразу, то, что Intellisense дал мне ошибку о том, что это была ошибка открытия ifstream, как это «было не найдено". После публикации на другом форуме я получил решение использовать заголовок <fstream>, так как он имеет классы для ifstream и ofstream, а затем мой код работал. Но мне нужен только класс ifstream, поэтому я считаю ненужным, что мне нужно также запустить fstream. Это приводит меня к моему вопросу, являются ли потоки и потоки нестандартных заголовков для Windows Visual Studio, и есть ли способ включить их?

+2

Их нет. все они находятся в заголовке . Кроме того, компилятор не будет ссылаться на код, который вы не используете. –

+2

«Intellisense дал мне ошибку» - IntelliSense - это * не * компилятор. Это совершенно отдельный парсер с его собственными ошибками и стандартными проблемами соответствия - используйте его в качестве ориентира, не более того. –

+0

@JesperJuhl Я не знал, как вы получите красную строку sugiggly под кодом, если что-то не найдено, поэтому я ошибаюсь, полагая, что это Intellisense. –

ответ

7

Да, единственный стандартный заголовок <fstream>, содержащий как ifstream, так и ofstream классы (и fstream, конечно).

[17.6.1.2] А ++ стандартная библиотека С содержит 55 C++ библиотека заголовки, как показано в таблице 14.

В таблице, нет <ifstream> или <ofstream>.

1

Заголовки нестандартны для окон. Вы не можете их включить.

+0

Спасибо за ответ. –

+0

Заголовки нестандартного периода, а не только для Windows (gcc также не включает их) –