小编Zhi*_*Xun的帖子

为什么visual studio会提供另一个结果而不是g ++?这里涉及未定义的行为吗?

此C++代码旨在将文件中的数据从67~69移动到70~72:

#include <fstream>
#include <iostream>

int main() {
  std::fstream file("test", std::ios::out);
  file.close();
  file.open("test", std::ios::binary | std::ios::in | std::ios::out);
  for (char i = 0; i < 127; ++i) 
    file.write(&i, 1);

  file.seekp(70);
  file.seekp(-3, std::ios::cur);

  char s[100];
  for (int i = 0; i < 100; ++i)
    s[i] = '\0';

  file.read(s, 3);
  for (int i = 0; i < 3; ++i)
    std::cout << (int)s[i] << " ";

  std::cout << std::endl;

  file.write(s, 3);
  file.seekp(-3, std::ios::cur);
  file.read(s, 3);

  for (int i = 0; i < 3; …
Run Code Online (Sandbox Code Playgroud)

c++ gcc fstream visual-studio

6
推荐指数
0
解决办法
146
查看次数

标签 统计

c++ ×1

fstream ×1

gcc ×1

visual-studio ×1