C++读写(同名文件)

C++ Reading and Writing (same NAMED file)

所以...这个想法很简单 - 在同一个文件中打开和写入 wins(a) 和 loses(b),但我不知道该怎么做。我遇到的第一个问题是:"Error with opening file just by string (s)",所以我找到了解决方案 - 使用 .c_str()。 现在我看到没有可以保存我的数据的 txt 文件。 任何解决方案? 感谢您的帮助,祝您有愉快的一天!

#include <bits/stdc++.h>

using namespace std;

fstream in;

string s ;

char t;

int a, b;


int main(){

cout << "DECK NAME:";

cin >> s;

s += ".txt";

in.open(s.c_str(), ios::in | ios::out);

while(1){

 cout << "END: e" << endl;
 cin >> t;

 if(t == 'e'){
     in.open(s.c_str(), ios::in | ios::out);
     in << a << " " << b;
     in.close();
     return 0;
 }

 in >> a >> b;

 in.close();

 if(t == 'w') a++;
 else b++;

 cout << "Win: " << a << endl;

 cout << "Lost: " << b << endl;

 }
}

如果你想从一个文件中读取和写入,那么你可以使用stdio.h中的fopen(),它看起来像这样:

#include <stdio.h>
#include <iostream>

FILE *file;

int main()
{
    file = fopen("myfile.txt", "w+");
    fputs("test", file);
    std::cout << "Writing test to myfile.txt" << std::endl;
    fflush(file);
    rewind(file);
    char *myString = new char[5];
    fread(myString, 1, 5 * sizeof(char), file);
    std::cout << "Reading " << myString << " from myfile.txt" << std::endl;
}

您可以在此处阅读有关这些功能的更多信息:https://www.cplusplus.com/reference/cstdio/