2 qq 36488129 qq_36488129 于 2017.01.04 22:18 提问

刚学习c++ 遇到问题 求教
c++

【问题描述】对于一个文本文件text1.dat,编写一个程序,将该文件中的每一行字符颠倒顺序后输出到另一个文件text2.dat中。
【输入文件】输入文件为当前目录下的text1.dat,该文件含有多行任意字符,也可能有空行。每个文本行最长不超过80个字符。在最后一行的结尾也有一个回车符。
【输出文件】输出文件为当前目录下的text2.dat。
【样例输入】设输入文件text1.dat为:
This is a test!
Hello, world!
How are you?
【样例输出】输出文件text2.dat为:
!tset a si sihT
!dlrow ,olleH
?uoy era woH

#include
#include
#include
using namespace std;
char s[80];
int main()
{
string a[10];//存储每一行的字符串
int i = 0;
ifstream infile,outfile;
infile.open("text1.dat", ios::in);
outfile.open("text1.dat", ios::out);
while (!infile.eof()) // 若未到文件结束一直循环

{
getline(infile, a[i], '\n');//读取一行,以换行符结束,存入 a[] 中
i++; //下一行

}

infile.close();
outfile.close();

}

4个回答

qq_36488129
qq_36488129   2017.01.04 22:19

接下来怎么将每行的字符反序 然后存储text2.dat中

ai977313677
ai977313677   2017.01.04 22:41

可以试着比较暴力的方法,将字符串存到数组中之后可以建一个for循环,从n-1开始倒序输出

qq_32378713
qq_32378713   2017.01.05 08:24
bitboss
bitboss   2017.01.05 08:35

如果你会使用STL的话,可以将读取的一行放入一个序列容器里,比如string,然后利用STL函数 reverse函数 ; 如 reverse(s.begin(),s.end()),对string进行逆置
,然后利用string的成员函数c_str转为字符串,最后可以用 fprintf函数写入一个字符串到文件中,如fprintf( fwrite, "%s\n",str);

代码我就不写了,如果你懂STL的运用自然就会了,希望可以帮助到你

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!