注册 登录
编程论坛 C++教室

新人求助 帮我看看代码

fuxuanyuan 发布于 2008-05-30 17:21, 511 次点击
#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;
}
5 回复
#2
fuxuanyuan2008-05-30 17:22
为什么运行起来显示变量没有申明
请高手指点
#3
p1s2008-05-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好好再检查一下算法有没有问题。
#4
fuxuanyuan2008-05-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;
}
#5
fuxuanyuan2008-05-30 18:53
我想问的是为什么这个程序using namespace std;
不能用局部引用只能用全局?
我用的也是VC6.0平台
#6
中学者2008-05-30 20:38
当然可以局部引用..
1