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/
所以...这个想法很简单 - 在同一个文件中打开和写入 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/