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;
}
}
这个程序怎么改啊…………我是小白……
展开
 我来答
leopanhang
2010-09-14 · 超过16用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:62.8万
展开全部
#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

参考资料: 个人经验

陈学阳
2010-09-14 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.1万
采纳率:14%
帮助的人:5460万
展开全部
对char c
isupper(c) 这个函数如果字符c是大写字母则返回真
islower(c) 这个函数如果字符c是小写字母则返回真

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式