首页 > 解决方案 > 读取文件并使用 toupper

问题描述

我想制作一个程序来读取特定文件,将其显示给用户,然后使用 to_upper 使该文件中的每个字母变大(如 k->K)并再次显示给用户。我不知道我的代码有什么问题,但它显示了一些错误。

    using namespace std;
    void to save(){
        fstream plik;
        string napis;
        char z;
        plik.open("name_of_the_file.txt", ios::out | ios::in);
            if(plik.good()){
            cout << "File before using to upper: " << endl;
                while(!plik.eof()) {
                plik >> napis;
                cout << napis << endl;
                }
            cout << "File after using to upper: " << endl;
                while(!plik.eof(z)) {
                    plik.put(toupper(z));
                }
                }
                plik.close();
                }

int main(){

    save();

return (0);
}

我知道我应该使用哪些库我只是不知道如何在这里发布它们。

标签: c++filec++17

解决方案


尝试这个,

#include<iostream>
#include<fstream>
#include<stdlib.h>

using std::cout;
using std::ios;
using std::endl;

void save()
{
    std::fstream plik,temp;
    char z;

    plik.open("my.txt");
    temp.open("temp",std::fstream::trunc|std::fstream::out);

    if(!temp)
    {
        cout<<"File Error";
        exit(1);
    }
    else
    {
        temp.close();
        temp.open("temp");
        if(!temp)
        {
            cout<<"File Error";
            exit(1);
        }
    }

    if(plik.is_open())
    {
    cout << "File before using to upper: " << endl;

    while(plik.get(z))
    {
       cout<<z;
       temp.put(toupper(z));
    }

    cout<<endl;

    plik.clear();
    plik.seekg(0,ios::beg);
    plik.seekp(0,ios::beg);

    temp.clear();
    temp.seekg(0,ios::beg);
    temp.seekp(0,ios::beg);

    while(temp.get(z))
    {
        plik.put(z);
    }

    temp.close();
    remove("temp");

    plik.clear();
    plik.seekg(0,ios::beg);
    plik.seekp(0,ios::beg);

    cout << "File after using to upper: " << endl;

    while(plik.get(z))
    {
       cout<<z;
    }
    }
    else
    {
        cout<<"File Error";
        exit(1);
    }
    plik.close();
}

int main()
{
save();
return (0);
}

推荐阅读