回 帖 发 新 帖 刷新版面

主题:c++输入与输出问题!求助。。

#include<iostream>
#include<fstream>
using namespace std;
void save_to_file(){
    ofstream outfile("f2.dat");
    if(!outfile)
    {
        cerr<<"open f2.dat error!"<<endl;
        exit(1);
    }
    char c[80];
    cin.getline(c,80);
    int i=0;
while(c[0]!=0){
    if(c[i]>=65 && c[i]<=90||c[i]>=97 && c[i]<=122)
    [u]outfile<<c[i];[/u]    cout<<c[i];
    i++;
}        cout<<endl;
        outfile.close();
}
void get_from_file(){
    char ch;
    ifstream infile("f2.dat",ios::in);
    if(!infile)
    {
        cerr<<"open f2.dat error!"<<endl;
        exit(1);
    }
    ofstream outfile("f3.dat");
    if(!outfile){
        cerr<<"open f3.dat error!"<<endl;
        exit(1);
    }
[u]infile>>ch;[/u]    while(infile.get(ch)){
        if(ch>=97 && ch<=122)
            ch=ch-32;
            
            [u]outfile.put(ch);[/u]    cout<<ch;
    infile>>ch;
    }
    cout<<endl;
    infile.close();
    outfile.close();
}
int main(){
    save_to_file();
    get_from_file();
    return 0;
}
本程序的功能就是将一个字符串里的字母输出到一个文件中,然后再从文件中将字母输出到另一个文件中(条件是将小写字母转化成大写)。本程序为什么不对!其错误主要是在我划线的地方,为什么那样写不对?

回复列表 (共1个回复)

沙发

1、while(c[0]!=0),这里会有问题,修改为while(c[i] != 0)
2、infile>>ch和infile.get(ch)似乎是同一个意思。如果反复的调用,就会造成反复的读取,这样一来自然不对了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册