Я хотел бы знать, как читать файл с использованием потоков, но также использовать их внутри функции. Пока мой кодЧтение файлов с помощью функции C++
;:#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
void burbuja(int[]);
void imprimeArreglo (int[],int);
void leeArchivo(string&);
int arreglo[10];
int i;
void burbuja (int a[])
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<i;j++)
{
if(a[i]>a[j])
{
int temp=a[i]; //swap
a[i]=a[j];
a[j]=temp;
}
}
}
}
void imprimeArreglo(int a[],int tam)
{
for(int i=0;i<tam;i++)
cout << a[i] << " ";
}
void leeArchivo(string& nombre)
{
string filename = nombre;
ifstream myfile(filename);
string line;
if (myfile.is_open()) {
while (getline (myfile,line))
{
cout << line << '\n';
}
myfile.close();
}
else cout << "Unable to open file";
}
int main()
{
string nombre = "arr.txt";
leeArchivo(nombre);
cin >> i ;
return 0;
}
Я хотел бы быть в состоянии назвать leeArchivo («arr.txt») от основного метода. С этим я получаю ошибки:
Error: bubble.cpp(37,14):'ifstream' is not a member of 'std'
Error: bubble.cpp(37,19):Statement missing ;
Error: bubble.cpp(39,20):Undefined symbol 'file'
Error: bubble.cpp(39,25):Could not find a match for 'std::getline(undefined,std::basic_string<char,std::string_char_traits<char>,std::allocator<char>>)'
Что я здесь отсутствует? (Я новичок в C++) файл Я пытаюсь прочитать имеет следующую структуру: <number>
<number> <number> <number> ...
EG:
=========================================
EDIT:Я использую Borland C++ 5.02
EDIT 2: Обновленный код, используя Geany Теперь об ошибке: BUBBLE.cpp:38:25: error: no matching function for call to 'std::basic_ifstream<char>::basic_ifstream(std::string&)'
1) Ваша основная функция не имеет типа возвращаемого значения, 2) вы 'используя патезрас;' но в некотором месте по-прежнему ставить 'std ::' in. Просто удалите директиву using и определите 'std ::', 3) ['std :: ifstream'] (http://en.cppreference.com/w/cpp/io/basic_ifstream/basic_ifstream) определенно является членом пространства имен 'std ::' – Borgleader
Это говорит о том, что компилятор вы используете? (Я удивлен, что он ничего не сказал о том, что у основного не было типа возврата) – Borgleader
За пределами нестандартного объявления 'main()', [это должно быть правильно скомпилировано] (http://ideone.com/KDy4mj). Независимо от того, что вы лишили кода при его публикации, верните его и обновите сообщение. При этом добавьте компилятор и платформу, на которой вы строите. (И я бы использовал 'cstdlib', но это не должно приводить к проблеме, с которой вы столкнулись, для этого отвечает код, который вы * не * показываете). Ошибки сообщают, что они находятся в строках 37 и 39. Очевидно, что чего-то не хватает. – WhozCraig