C++ 文件小写转大写程序问题
#include<fstream>#include<iostream>usingnamespacestd;voidmain(){cout<<"请输入要转换的文件路径:"<...
#include<fstream>
#include<iostream>
using namespace std;
void main()
{
cout<<"请输入要转换的文件路径:"<<endl;
char zimu,wenjianlujing,zhuancundizhi;
cin>>wenjianlujing;
ifstream ifile;
ifile.read(wenjianlujing,ios::binary|ios::ate);
if(ifile)
{
while(ifile.good())
{
streampos here=ifile.tellg();
zimu=ifile.get();
zimu=toupper(zimu);
}
cout<<"请输入转存地址:"<<endl;
cin>>zhuancundizhi;
ofstream ofile(zhuancundizhi);
ofile<<zimu;
}
}
这个程序怎么改啊…………我是小白…… 展开
#include<iostream>
using namespace std;
void main()
{
cout<<"请输入要转换的文件路径:"<<endl;
char zimu,wenjianlujing,zhuancundizhi;
cin>>wenjianlujing;
ifstream ifile;
ifile.read(wenjianlujing,ios::binary|ios::ate);
if(ifile)
{
while(ifile.good())
{
streampos here=ifile.tellg();
zimu=ifile.get();
zimu=toupper(zimu);
}
cout<<"请输入转存地址:"<<endl;
cin>>zhuancundizhi;
ofstream ofile(zhuancundizhi);
ofile<<zimu;
}
}
这个程序怎么改啊…………我是小白…… 展开
2个回答
展开全部
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <cctype>
using namespace std;
int main()
{
fstream myfile;
string filename;
cout << "请输入文件名:(默认请输入 “New Text Document.txt”,不包括双引号)" << endl;
getline(cin, filename);
myfile.open(filename, ios::in | ios::out | ios::trunc);
string yourInput;
if(!myfile.is_open())
{
cout << "the file is not opened properly." << endl;
return 1;
}
else
{
cout << "已经打开了文件,请输入小写字母!" << endl;
getline(cin, yourInput);
//cout << mytoupper(&yourInput[0]);
const char* const_yourInput = yourInput.c_str();
int len = strlen(const_yourInput) + 1;
char* c_yourInput = const_cast<char*>(const_yourInput);
char newInput[1024];
for(int i=0; i<len; i++)
{
newInput[i] = toupper(c_yourInput[i]);
}
newInput[len+1] = '0';
myfile << newInput;
}
if(!myfile.eof())
{
cout << "写入到文件成功!" << endl;
//开始从文件读出数据
string yourOutput;
myfile.seekp(ios::beg);
myfile >> yourOutput;
//准备把输入的数据写到另外一个文件当中去
yourOutput += '\n';
cout << yourOutput;
}
myfile.close();
system("pause");
return 0;
}
这样改比较好,至少你可以正常小写转大写了。
不过要注意,如果按照你的想法,你需要在用fstream 打开一个文件,然后采用一个string 来进行中转就可以了。这个留给你自己写了。很简单。
如果不会写,email 我了。xzyhang@msn.com
#include <fstream>
#include <string>
#include <cstdlib>
#include <cctype>
using namespace std;
int main()
{
fstream myfile;
string filename;
cout << "请输入文件名:(默认请输入 “New Text Document.txt”,不包括双引号)" << endl;
getline(cin, filename);
myfile.open(filename, ios::in | ios::out | ios::trunc);
string yourInput;
if(!myfile.is_open())
{
cout << "the file is not opened properly." << endl;
return 1;
}
else
{
cout << "已经打开了文件,请输入小写字母!" << endl;
getline(cin, yourInput);
//cout << mytoupper(&yourInput[0]);
const char* const_yourInput = yourInput.c_str();
int len = strlen(const_yourInput) + 1;
char* c_yourInput = const_cast<char*>(const_yourInput);
char newInput[1024];
for(int i=0; i<len; i++)
{
newInput[i] = toupper(c_yourInput[i]);
}
newInput[len+1] = '0';
myfile << newInput;
}
if(!myfile.eof())
{
cout << "写入到文件成功!" << endl;
//开始从文件读出数据
string yourOutput;
myfile.seekp(ios::beg);
myfile >> yourOutput;
//准备把输入的数据写到另外一个文件当中去
yourOutput += '\n';
cout << yourOutput;
}
myfile.close();
system("pause");
return 0;
}
这样改比较好,至少你可以正常小写转大写了。
不过要注意,如果按照你的想法,你需要在用fstream 打开一个文件,然后采用一个string 来进行中转就可以了。这个留给你自己写了。很简单。
如果不会写,email 我了。xzyhang@msn.com
参考资料: 个人经验
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询