gpt4 book ai didi

c++ - 使用函数 C++ 读取文件

转载 作者:太空宇宙 更新时间:2023-11-04 11:40:19 24 4
gpt4 key购买 nike

我想知道如何使用流读取文件以及如何在函数内部使用它们。到目前为止我的代码是:

    #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> ...

例如:

5

19 28 33 0 1

=========================================

编辑:我使用的是 Borland C++ 5.02

编辑 2:更新代码,使用 Geany 现在错误是:BUBBLE.cpp:38:25: error: no matching function for call to 'std::basic_ifstream<char>::basic_ifstream(std::string&)'

最佳答案

ifstream 的行为特别奇怪。试试这个编辑:

void leeArchivo(const string&);
void leeArchivo(const string& nombre)
{
ifstream file(nombre.c_str());
string line;
while(getline(file,line)) {
cout << line << endl;
}
}

int main()
{
leeArchivo("arr.txt");
return 0;
}

此外,使用:

#include <cstdlib>

代替:

#include <stdlib.h>

关于c++ - 使用函数 C++ 读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21655895/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com