刚学习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();

}

c++

4个回答

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

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问