c++ - 读取文件并使用 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);
}
我知道我应该使用哪些库我只是不知道如何在这里发布它们。
解决方案
尝试这个,
#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);
}
推荐阅读
- r - Scatter plot in R doesn't use the x values in the variable indicated in the plot statement
- html - Image inside Grid stretches grid item size disproportionately to others
- javascript - JS:如何在地图后过滤
- javascript - Sinon:类的存根静态方法无法按预期工作
- css - Same width as height on a flex child element
- sorting - 如何对第二列中的词频进行排序和列出?
- javascript - 如何仅以一种分辨率隐藏显示模式?
- rx-swift - IOS Rxswift use Kingfisher to prefetch cell Image
- amazon-web-services - Invalid Json in AWS Custom Authorize .Net Core
- angularjs - AngularJS 为 MultiBar Chart NVD3 准备数据