本帖最后由 ravenhu13 于 2017-10-3 21:25 编辑
实现了你的需求,不过不是用fputc的,这里着重需要注意的是读取进的时候要对字符进行判断中文还是英文分别处理。代码如下:
#include <fstream>
#include<string>
#include<iostream>
/*下面这个函数可能是难点*/
string soloveword(string unsolvesentence) {
string sentence;
for (int i = 0; i < unsolvesentence.length(); i++)
{
if (unsolvesentence[i] < 255 && unsolvesentence[i]>0)//扩充的ASCII字符范围为0-255,如是,处理一个字节
{
sentence.append(unsolvesentence.substr(i, 1));
sentence.append(" ");
}
else//<0,>255的是汉字,处理两个字节
{
sentence.append(unsolvesentence.substr(i, 2));
sentence.append(" ");
++i;
}
}
return sentence;
}
void changefile(string inputfile,string outputfile) {
/*要求把给定的txt文件里的一段话进行处理
处理后每个字符直接均匀一个空格,
并存放在另一个txt文件中
另外这个要读的文件中既有汉字又有英文*/
ifstream in(inputfile);
ofstream out(outputfile);
out.clear();
string unsentence,sentence,word;
while (getline(in, unsentence))
{
sentence = soloveword(unsentence);
out << sentence;
}
}
int main(int argc, char *argv[])
{
changefile("f:\\1.txt","f:\\2.txt");
return 0;
}
效果图如下:
|