C++ fstream的输入输出
谁能告诉我这个代码有什么问题吗?我总是不开门C++ fstream的输入输出,c++,fstream,C++,Fstream,谁能告诉我这个代码有什么问题吗?我总是不开门 #include <iostream> #include <fstream> using namespace std; int main(){ fstream fs; fs.open("fsfile2",ios::in|ios::out|ios::binary); if(fs.is_open()){ fs.write("wow",sizeof("wow")); char str[20
#include <iostream>
#include <fstream>
using namespace std;
int main(){
fstream fs;
fs.open("fsfile2",ios::in|ios::out|ios::binary);
if(fs.is_open()){
fs.write("wow",sizeof("wow"));
char str[20];
fs.read((char*)str,sizeof(str));
cout<<str<<endl;}
else
cout<<"Not open\n";
return 0;
}
#包括
#包括
使用名称空间std;
int main(){
fstream fs;
打开(“fsfile2”,ios::in | ios::out | ios::binary);
如果(fs.is_open()){
财政司司长写(“哇”,sizeof(“哇”);
char-str[20];
fs.read((char*)str,sizeof(str));
解决方案:
请将文件扩展名添加到文件名。
如果它是一个文本文件,它将是
然后,我试着移除
由于第一个进程只写入文件,通过删除它,文件被创建,并且“哇”也被写入其中
为了这些线路
到
也可以使用C++类的字符串,而不是字符数组,这样文件内的字符数就不再是你的问题了。
#include <string>
string str;
因为您的代码还没有处理二进制文件
我尝试了这些,效果很好!祝您愉快!解决方案:
请将文件扩展名添加到文件名。
如果它是一个文本文件,它将是
然后,我试着移除
由于第一个进程只写入文件,通过删除它,文件被创建,并且“哇”也被写入其中
为了这些线路
到
也可以使用C++类的字符串,而不是字符数组,这样文件内的字符数就不再是你的问题了。
#include <string>
string str;
因为您的代码还没有处理二进制文件
我尝试了这些,效果很好!祝您有愉快的一天!试试这段代码
fs.open("fsfile2", ios::app|ios::in|ios::out|ios::binary);
试试这个代码
fs.open("fsfile2", ios::app|ios::in|ios::out|ios::binary);
通过像您一样使用open(),如果这是您的目标,则不会创建文件。
如果要创建新文件,请查看:
如果文件存在,则表明您没有在正确的路径中查找该文件。或者将文件名更改为完整路径,或者将可执行文件放在文件所在的文件夹中
希望这能有所帮助。像您一样使用open(),如果这是您的目标,则不会创建文件。
如果要创建新文件,请查看:
如果文件存在,则表明您没有在正确的路径中查找该文件。或者将文件名更改为完整路径,或者将可执行文件放在文件所在的文件夹中
希望这有帮助。可能您没有权限在可执行文件所在的目录中创建文件。可能您没有权限在可执行文件所在的目录中创建文件。fstream fs;
不会为您创建新文件。
您需要确保该文件存在于项目目录中。
另一方面,如果您要使用流fs(“file.txt”)的,它会为您创建文件。或者在打开fstream fs时仅使用ios::out,这将为您创建文件。
fstream fs;
不会为您创建新文件。
您需要确保该文件存在于项目目录中。
另一方面,如果要使用流fs(“file.txt”)的;
它会为您创建文件。或者当您打开fstream fs时,只使用ios::out,这会为您创建文件。
除了缩进之外,这会使我们不必要地难以读取文件?您确定fsfile2
驻留在您的程序运行的同一目录中吗?文件是否已经存在?如果没有t、 然后将ios::app或ios::trunc添加到标志中。不。我想这就是问题所在。谢谢。顺便问一下,你能给我一些缩进提示吗。我是初学者。你的fs.read
将尝试读取你刚写的“哇”后面的内容。如果你想阅读“哇”返回,您需要返回到文件开始,或关闭并重新打开。除了缩进,这会使我们不必要地难以读取它?并且您确定fsfile2
驻留在您的程序运行的同一目录中?该文件是否已存在?如果不存在,则将ios::app或ios::trunc添加到标志中。否。我认为我这就是问题所在。谢谢。顺便问一下,你能给我一些缩进提示吗。我是一个初学者。你的fs.read
将尝试读取你刚才写的“哇”后面的内容。如果你想读回“哇”,你需要返回到文件开始处,或者关闭并重新打开。
fs << "wow";
fs >> str;
#include <string>
string str;
while(!fs.eof()) {
fs >> str;
cout << str << endl;
}
#include <string>
fs.open("fsfile2.txt", ios::out); // ios::out for write only
if(fs.is_open()) {
// writes "wow" to file
fs << "wow";
// closes the file
fs.close();
// ios::in for read only
fs.open("fsfile2.txt", ios::in);
// better to define variable just before using it
string str;
// loops until end-of-file
while(!fs.eof()) {
// reads a line from file, stores it to str
fs >> str;
// shows str to screen
cout << str << endl;
}
}
ios::binary
fs.open("fsfile2", ios::app|ios::in|ios::out|ios::binary);