У меня есть этот простой код:
std::ifstream ifs;
ifs.open ("test.txt", std::ifstream::in);
char c = ifs.get();
while (ifs.good()) {
std::cout << c;
c = ifs.get();
}
ifs.close();
Но я получаю много ошибок?
такие как:
Error 9 error C3083: 'ifstream': the symbol to the left of a '::' must be a type test.cpp
Error 8 error C2228: left of '.open' must have class/struct/union test.cpp
и так далее.
У меня есть эти определения в начале файла
#include <iostream>
#include <fstream>
#include "stdafx.h"using namespace std;
Я использую VS2012 в консольном приложении.
edit1:
Полный код выглядит следующим образом:
void ReadRawImages::Read(int frameNumber)
{
std::ifstream ifs;
ifs.open ("test.txt", std::ifstream::in);
char c = ifs.get();
while (ifs.good()) {
std::cout << c;
c = ifs.get();
}
ifs.close();}
Я также отметил, что у меня есть эти предупреждения:
Warning 1 warning C4627: '#include <iostream>': skipped when looking for precompiled header use test.cpp
Warning 2 warning C4627: '#include <fstream>': skipped when looking for precompiled header use test.cpp
Поместите заголовочные файлы после #include "stdafx.h"
#include "stdafx.h"#include <iostream>
#include <fstream>
stdafx.h
должен быть первым включенным файлом, это специфическое правило Microsoft.
Visual C ++ не будет ничего компилировать до того, как #include «stdafx.h» в
исходный файл, если не включена опция компиляции /Yu’stdafx.h ‘
(по умолчанию) 1
Ваш проект, вероятно, использует предварительно скомпилированные заголовки. Если это так, первая строка каждого .cpp
файл должен быть:
#include "stdafx.h"
Или как бы там ни было название заголовка.