file.open 没有在 C++ 中创建新文件
file.open not creating a new file in C++
我正在尝试 运行 下面的代码,但它既没有显示路径上的任何文件,也没有从中读取任何内容。无论我通过“cin >>”写入文件,它都没有被写入。谁能告诉我下面代码中的错误:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
char string[80];
cout << "Enter Input" << endl;
cin >> string;
int len = strlen(string);
fstream file;
file.open("TEXT", ios::in | ios::out);
for (int i = 0; i < len; i++)
file.put(string[i]);
file.close();
file.open("TEXT", ios::in | ios::out);
file.seekg(0);
cout << "Output" << endl;
while (file) {
char ch;
file.get(ch);
cout << ch;
}
file.close();
return 0;
}
您应该在公开调用中添加 fstream::app
标志,这样就可以了!
不要乱用你不需要(或不理解)的文件模式。先以只写方式打开文件,再以只读方式打开文件。使用不同的流进行读取和写入。
ofstream file_out;
file_out.open("TEXT");
for (int i = 0; i < len; i++)
file_out.put(string[i]);
file_out.close();
ifstream file_in;
file_in.open("TEXT");
cout << "Output" << endl;
while (file_in) {
char ch;
file_in.get(ch);
cout << ch;
}
除非您真正了解有关 ios::in
和 ios::out
的规则,否则在需要输入时使用 ifstream
并在需要输出时使用 ofstream
更安全。
更多 reading 如果您想了解规则。
我正在尝试 运行 下面的代码,但它既没有显示路径上的任何文件,也没有从中读取任何内容。无论我通过“cin >>”写入文件,它都没有被写入。谁能告诉我下面代码中的错误:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
char string[80];
cout << "Enter Input" << endl;
cin >> string;
int len = strlen(string);
fstream file;
file.open("TEXT", ios::in | ios::out);
for (int i = 0; i < len; i++)
file.put(string[i]);
file.close();
file.open("TEXT", ios::in | ios::out);
file.seekg(0);
cout << "Output" << endl;
while (file) {
char ch;
file.get(ch);
cout << ch;
}
file.close();
return 0;
}
您应该在公开调用中添加 fstream::app
标志,这样就可以了!
不要乱用你不需要(或不理解)的文件模式。先以只写方式打开文件,再以只读方式打开文件。使用不同的流进行读取和写入。
ofstream file_out;
file_out.open("TEXT");
for (int i = 0; i < len; i++)
file_out.put(string[i]);
file_out.close();
ifstream file_in;
file_in.open("TEXT");
cout << "Output" << endl;
while (file_in) {
char ch;
file_in.get(ch);
cout << ch;
}
除非您真正了解有关 ios::in
和 ios::out
的规则,否则在需要输入时使用 ifstream
并在需要输出时使用 ofstream
更安全。
更多 reading 如果您想了解规则。