基本用法

  1. std::fstream s(R"(C:\Users\37686\CLionProjects\untitled6\test.txt)", ios::in | ios::out);

一、以char方式写入文件,并以char方式读取,打印

  1. int y = 1023;
  2. s.write((char*)(&y), sizeof y);

  1. int x = 0;
  2. s.read((char*)(&x), sizeof x);
  3. cout << x << endl;
  4. (x输出1023)

但是这种方法在文件当中是不可见的:image.png

二、以可见的方式读取

  1. int y;
  2. s.read((char*)(&y), sizeof y);
  3. cout << y << endl;

这样读出来的结果,并不是y=1023,而是读到了31 30 32 33所表示的int值,前者是char形式的1023,用int类型进行了转换,就变成一个巨大的数。

  1. int y;
  2. char str[5];
  3. s.read(str, 4);
  4. cout << str << endl;
  5. y = stoi(str);
  6. cout << y << endl;
  7. if (str[4] == '\0') {
  8. cout << "yes" << endl;
  9. }

读到一个char str[]里面,出来就是可见的,然后可以用stoi转换成int

  1. int x = 2047;
  2. char new_str[5];
  3. itoa(x, new_str, 10);
  4. s.write(new_str, 4);
  5. cout << new_str << endl;

通过这种方法写真实的char到fstream里面,写的结果也是可见的。
fstream用完记得close
fstream用完记得close
fstream用完记得close
fstream用完记得close