我无法使用 fstream 在 C++ 中创建文件
I cannot create a file in C++ using fstream
这是我关于堆栈溢出的第一个问题,所以如果我搞砸了任何事情请怜悯(笑)
编码语言:C++
IDE: Code::blocks
编译器:GNU GCC
OS: Windows
让我澄清一下:
这是我的代码:
#include <iostream>
#include <fstream>
int main() {
std::fstream fileObject;
std::string line;
fileObject.open("randomFile.txt");
fileObject << "Random text\n kjshjdfgxhkjlwkdgxsdegysh";
while (getline(fileObject, line) ) {
std::cout << line << "\n";
}
fileObject.close();
}
这不会产生任何错误,但是当我检查我的项目文件时,文件 randomFile 不存在,控制台屏幕上也没有显示任何文本。
但是,这段代码确实有效:
#include <iostream>
#include <fstream>
int main() {
std::ofstream fileObject;
fileObject.open("randomFile.txt");
fileObject << "Random text\n kjshjdfgxhkjlwkdgxsdegysh";
fileObject.close();
}
它创建文件并插入指定的文本...
我还有一个次要问题:如果我尝试制作同名的 ifstream 和 ofstream 对象,它会显示为错误,但我不知道如何制作它以便我既可以写入文件又可以从中读取它使用相同的代码...
你需要阅读文档,你不能靠猜测来编写 C++ 程序。这些选项允许您打开一个文件进行同时读写,但有以下注意事项
// error if the file does not exist
std::fstream fileObject("randomFile.txt");
或(同样的事情)
// error if the file does not exist
std::fstream fileObject("randomFile.txt",
std::ios_base::in|std::ios_base::out);
或
// destroys contents if the file exists, but creates file if it does not
std::fstream fileObject("randomFile.txt",
std::ios_base::in|std::ios_base::out|std::ios_base::trunc);
如果这些选项都不是您想要的,那么您将必须在打开文件之前检查文件是否存在。
引用here.
这是我关于堆栈溢出的第一个问题,所以如果我搞砸了任何事情请怜悯(笑) 编码语言:C++ IDE: Code::blocks 编译器:GNU GCC OS: Windows
让我澄清一下: 这是我的代码:
#include <iostream>
#include <fstream>
int main() {
std::fstream fileObject;
std::string line;
fileObject.open("randomFile.txt");
fileObject << "Random text\n kjshjdfgxhkjlwkdgxsdegysh";
while (getline(fileObject, line) ) {
std::cout << line << "\n";
}
fileObject.close();
}
这不会产生任何错误,但是当我检查我的项目文件时,文件 randomFile 不存在,控制台屏幕上也没有显示任何文本。 但是,这段代码确实有效:
#include <iostream>
#include <fstream>
int main() {
std::ofstream fileObject;
fileObject.open("randomFile.txt");
fileObject << "Random text\n kjshjdfgxhkjlwkdgxsdegysh";
fileObject.close();
}
它创建文件并插入指定的文本... 我还有一个次要问题:如果我尝试制作同名的 ifstream 和 ofstream 对象,它会显示为错误,但我不知道如何制作它以便我既可以写入文件又可以从中读取它使用相同的代码...
你需要阅读文档,你不能靠猜测来编写 C++ 程序。这些选项允许您打开一个文件进行同时读写,但有以下注意事项
// error if the file does not exist
std::fstream fileObject("randomFile.txt");
或(同样的事情)
// error if the file does not exist
std::fstream fileObject("randomFile.txt",
std::ios_base::in|std::ios_base::out);
或
// destroys contents if the file exists, but creates file if it does not
std::fstream fileObject("randomFile.txt",
std::ios_base::in|std::ios_base::out|std::ios_base::trunc);
如果这些选项都不是您想要的,那么您将必须在打开文件之前检查文件是否存在。
引用here.