gpt4 book ai didi

c++ - 如何使ofs不在开头被覆盖

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:48:25 24 4
gpt4 key购买 nike

我想用 C++ 编写一个程序,它可以读取一个文本文件的内容,然后以相反的顺序将其写入另一个文件。例如,如果在文件一中会有:

Hi This
Is File

我希望文件 2 成为:

eliF sI
sihT iH

我想这样做:

char c;
while(ifs.get(c))
{
ofs.seekg(0);
ofs.put(c);
}

但是每次它都会覆盖字符并且输出只是最后一个。

我设法制作了一个如下所示的程序:

int i=0;
char chars[100];
while(ifs.get(chars[i])) i++;
cout<<endl<<endl;
for (; i>=0; i--)
cout<<chars[i]<<" ";

for(; i>=0; i--)
ofs << chars[i];

但我想做一个不使用数组的。有没有办法制作一些它不会覆盖的东西,只写在字母之前?

最佳答案

  1. 从输入文件中读取字符并将它们复制到 vector 中。
  2. 将 vector 中的字符以相反的顺序保存到输出文件中。
std::vector<char> chars;
char c;
while ( ifs.get(c) )
{
chars.push_back(c);
}

size_t size = chars.size();
for ( size_t i = size; i > 0; i-- )
{
ofs.put(chars[i-1]);
}

关于c++ - 如何使ofs不在开头被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com