将vector的内容复制到文件中
copy contents of vector into file
我有以下代码复制vector的内容到文件
#include<iterator>
#include<algorithm>
#include<fstream>
#include<iostream>
#include<vector>
using namespace std;
void dump(vector<int>& v){
ofstream out1("C\Users\datuashvili\Desktop\vector.txt");
if(!out1){
exit(1);
}
copy(v.begin(),v.end(),ostream_iterator<int>(out1," "));
}
int main(){
ofstream out1("C\Users\datuashvili\Desktop\vector.txt");
vector<int>v;
v.push_back(100);
v.push_back(200);
v.push_back(300);
v.push_back(500);
v.push_back(1000);
dump(v);
return 0;
}
但是当我简单地运行这段代码时,,没有写入文件,这是在桌面上创建的,为什么?你能告诉我这个代码有什么问题吗?编辑:这里编辑的代码也不工作,不打开文件,也不写,两个版本
1.版本#include<iterator>
#include<algorithm>
#include<fstream>
#include<ostream>
#include<iostream>
#include<vector>
using namespace std;
void dump( vector<int>& v){
ofstream out1(("C:\vector.txt"));
if(!out1){
exit(1);
}
copy(v.begin(),v.end(),ostream_iterator<int>(out1," "));
out1.close();
}
int main(){
vector<int>v;
v.push_back(100);
v.push_back(200);
v.push_back(300);
v.push_back(500);
v.push_back(1000);
dump(v);
return 0;
}
2。
#include<iostream>
#include<fstream>
#include<ostream>
#include<vector>
#include<algorithm>
#include<iterator>
using namespace std;
template<typename T>
void writeTo(const std::string& filepath,const vector<T>& data)
{
ofstream filestream("C:\vector.txt");
std::copy(data.begin(),data.end(),std::ostream_iterator<T>( filestream," "));
filestream.close();
}
int main(){
vector<int>test;
test.push_back(1);
writeTo<int>("C:\vector.txt", test);
return 0;
}
我怀疑问题是这样的:
ofstream out1("C\Users\datuashvili\Desktop\vector.txt");
;
ofstream out1("C:\Users\datuashvili\Desktop\vector.txt");
^^^^^
你可以通过在调试器下运行,观察程序的退出状态,或者在程序中添加print语句来自己发现这个问题。
在调试器中,您将逐步检查代码并发现您按了"exit(1)"。或者,您可以在if
语句中添加类似cout << "Can't open file!n";
的内容。
尝试从一个更简单的工作版本开始,然后逐一更改:本例将只在c:/
中创建文件#include <fstream>
#include <vector>
using namespace std;
void dump( const vector<int> & v)
{
ofstream out1("C:\vector.txt");
if(!out1)
{
exit(1);
}
copy(v.begin(),v.end(),ostream_iterator<int>(out1," "));
}
int main()
{
vector<int>v;
v.push_back(100);
v.push_back(200);
v.push_back(300);
v.push_back(500);
v.push_back(1000);
dump(v);
return 0;
}
正如其他人提到的,您的路径是错误的(至少,在"c:…"中缺少":"),您应该只在一个地方打开文件。
就像Rob评论的那样,你的道路仍然是错误的。您漏掉了磁盘标识符后面的冒号。您的路径需要像这样:"c:...."
你仍然打开流两次,第二次尝试可能会失败,因为这个资源被第一次调用锁定了。
试试这样写:
template< typename T >
void writeToFile( const std::string& filePath, const std::vector< T >& data )
{
std::ofstream fileStream( filePath );
std::copy(data.begin(), data.end(), std::ostream_iterator< T >(fileStream, " ") );
fileStream.close();
}
int main()
{
...
vector< int > test;
test.push_back(1);
writeToFile<int>( "c:\test.txt", test );
...
}
相关文章:
- 如何使用位字段将数据从二进制文件复制到结构中?
- 将文件复制到自定义位置,存在字符串转换问题
- 无法将整个文本文件复制到字符数组
- 使用 Libssh 将文件从服务器复制到客户端:分配文件复制目标路径时出现问题
- 将文本从一个文件复制到另一个c++流时出错
- 如何检查文件复制和写入是否成功
- 将文件复制到 pro/pri 文件中的新目录
- C++可以从文本文件复制并粘贴到打开的Word程序中
- 如何使用 c++ 文件系统库将文件复制到另一个目录
- 将.bin输入文件复制到 linux 中
- CMake:将头文件复制到输出目录
- 如何将文件复制到另一个文件中,但是用用户输入的单词替换单词
- 仅将所需的数据从一个大文件复制到另一个大文件
- catkin_make无法创建可执行文件,并自动将标题文件复制到DEVEL
- QT-将文件复制到AppData
- 将文件复制到另一个目录不起作用
- 使用boost递归地将给定目录中每个最低级别文件夹的文件复制到另一个目录-C++
- 在 c++ 中将整个.txt文件复制到 char 数组中
- 将二进制文件复制到C++中的远程位置
- 我试图运行将文本从一个文件复制到另一个文件的程序