C语言文件与数组之间输入输出操作
文件存到数组里面:
#include<iostream>
#include<fstream>
#include<string>
#include<cstdio>
#include<cstdlib>
using namespace std;
int main()
{
fstream fs("test.txt");
istreambuf_iterator<char> beg(fs),end;
string data(beg,end);
cout<<data<<endl;
system("pause");
return 0;
}
这个代码保存的位置下新建一个文件,名为test.txt。
然后文件中所有字符存到data字符串里面。
输出字符串,可看出各种字符都被读到data里面了。
数组存到文件里面:
#include<iostream>
#include<fstream>
#include<string>
#include<cstdio>
#include<cstdlib>
using namespace std;
int main()
{
fstream fs("test.txt");
istreambuf_iterator<char> beg(fs),end;
string data(beg,end);
FILE * f;
f= fopen("1.txt", "w");
for(int i=0; data[i]; i++) fprintf(f, "%c", data[i]);
fclose(f);
system("pause");
return 0;
}
data存了test.txt里面的数据,现在我们把data输出到另一个文件1.txt。
自定义文件路径:
#include<iostream>
#include<fstream>
#include<string>
#include<cstdio>
#include<cstdlib>
using namespace std;
int main()
{
char* file1=(char*)malloc(sizeof(char)*100000);
char* file2=(char*)malloc(sizeof(char)*100000);
printf("请输入要打开的文件名(含路径):\n");
gets(file1);
fstream fs(file1);
istreambuf_iterator<char> beg(fs),end;
string data(beg,end);
cout<<data<<endl;
system("pause");
FILE * f;
printf("请输入要保存的文件名(含路径):\n");
gets(file2);
f = fopen(file2, "w");
for(int i=0; data[i]; i++) fprintf(f, "%c", data[i]);
fclose(f);
system("pause");
return 0;
}
输入一个地址作为数据文件,存到数组里。
再输入一个地址作为输出文件,数组所有字符输出到这个文件里。