fuxuanyuan 发表于 2008-5-30 17:21

新人求助 帮我看看代码

#include<iostream>
#include<fstream>
#include<cstdlib>

void cout_max(ifstream& in_stream);
//获取输入流并向屏幕输出流文件中最大数字.

void cout_min(ifstream& in_stream);
//获取输入流并向屏幕输出流文件中最小数字.

int main()
{
        using namespace std;
        ifstream fin;

        fin.open("number.txt");
        if(fin.fail())
        {
                cout<<"打开文件失败\n";
                exit(1);
        }
        cout_max(fin);
        cout_min(fin);

        fin.close();

        cout<<"程序结束\n";
        return 0;
}


void cout_max(ifstream& in_stream)
{
        using namespace std;
        int n=0,next,n2;
        while(in_stream<<next)
        {
                n2=next;
                if(n<n2)
                        n=n2;
        }
        cout<<n<<"为文件中最大的数"<<endl;
}


void cout_min(ifstream& in_stream)
{
        using namespace std;
        int n=999,next,n2;
        while(in_stream<<next)
        {
                n2=next;
                if(n>n2)
                        n=n2;
        }
        cout<<n<<"为文件中最小的数"<<endl;
}

fuxuanyuan 发表于 2008-5-30 17:22

为什么运行起来显示变量没有申明
请高手指点

p1s 发表于 2008-5-30 17:54

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;//我用的是VC6.0,using namespace std不放在这里提示很多未定义的东西
void cout_max(ifstream& in_stream);


void cout_min(ifstream& in_stream);

int main()
{

    ifstream fin;

    fin.open("number.txt");
    if(fin.fail())
    {
        cout<<"打开文件失败\n";
        exit(1);
    }
    cout_max(fin);
    cout_min(fin);

    fin.close();

    cout<<"程序结束\n";
    return 0;
}


void cout_max(ifstream& in_stream)
{
    int n=0,next,n2;
    while(in_stream >>next)//这个地方方向搞错啦,ifstream应该是读入内容,所以是指向变量的
    {
        n2=next;
        if(n<n2)
            n=n2;
    }
    cout<<n<<"为文件中最大的数"<<endl;
}


void cout_min(ifstream& in_stream)
{
    int n=999,next,n2;
    while(in_stream >>next)//这个地方方向搞错啦,ifstream应该是读入内容,所以是指向变量的
    {
        n2=next;
        if(n>n2)
            n=n2;
    }
    cout<<n<<"为文件中最小的数"<<endl;
}


现在编译通过了,如果还有运行时错误LZ好好再检查一下算法有没有问题。

fuxuanyuan 发表于 2008-5-30 18:48

谢谢我也修改了一下
//获取number.txt文件中的数字,并输出最大最小值

#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
void cout_max(ifstream& in_stream);
//获取输入流并向屏幕输出流文件中最大数字.

void cout_min(ifstream& in_stream);
//获取输入流并向屏幕输出流文件中最小数字.

int main()
{

        ifstream fin,in_stream;

        fin.open("number.txt");
        if(fin.fail())
        {
                cout<<"打开文件失败\n";
                exit(1);
        }

        in_stream.open("number.txt");
        if(fin.fail())
        {
                cout<<"打开文件失败\n";
                exit(1);
        }
        cout_min(fin);
        cout_max(in_stream);

        fin.close();
        in_stream.close();

        cout<<"程序结束\n";
        return 0;
}


void cout_max(ifstream& in_stream)
{

        int n,next,n2;

        in_stream>>n;

        while(in_stream>>next)
        {
                n2=next;
                if(n<n2)
                        n=n2;
        }
        cout<<n<<"为文件中最大的数"<<endl;
}


void cout_min(ifstream& in_stream)
{

        int n,next,n2;

        in_stream>>n;

        while(in_stream>>next)
        {
                n2=next;
                if(n>n2)
                        n=n2;
        }
        cout<<n<<"为文件中最小的数"<<endl;
}

fuxuanyuan 发表于 2008-5-30 18:53

我想问的是为什么这个程序using namespace std;
不能用局部引用只能用全局?
我用的也是VC6.0平台

中学者 发表于 2008-5-30 20:38

当然可以局部引用..

页: [1]

编程论坛