对于文件流来说,写入可以没有这个文件,系统帮你自动创建,但读取必须要有。
1、编程实现一个简单的文件加密:从键盘读入一行字符,把每个字符的ASCII值加5后存放在文件“data.txt”中。
#include#include using namespace std; int main() { char zifu[30]={0}; cin.getline(zifu,30); for(int i=0;zifu[i]!=' ';i++) { zifu[i]+=5; } fstream file("data.txt"); for(int i=0;zifu[i]!=' ';i++) { file< ps:记得在同子目录下创建data.txt
2、编写程序将一个文本文件“in.txt”的内容追加到另一个文本文件"out.txt"的末尾。
#include#include #include using namespace std; int main() { string str; fstream ifile("in.txt"); fstream ofile("out.txt",ios::app); while(ifile>>str) { ofile< 也别纠结txt里面到底是什么,全都当做字符串来提取。
3、从键盘接受10个整数,存入“d:source.txt”中,然后再从该文件中读取这10个整数,并对这些整数进行升序排序,最后将排序结果写入另一文本文件"d:target.txt"
#include#include #include using namespace std; void change(int name[]) { int i,j; int temp; for(i=0;i<9;i++) { for(j=0;j<9-i;j++) { if(name[j]>name[j+1]) { temp=name[j]; name[j]=name[j+1]; name[j+1]=temp; } } } } int main() { int num[10]={0}; int num0[10]={0}; int a; fstream ofile("D:\source.txt"); for(int i=0;i<10;i++) { cin>>num[i]; ofile< >a; num0[i]=a;}//这个读取以后再升序排序的操作是在是太蠢了,还要装装样子 change(num0); fstream outfile("D:\target.txt"); for(int i=0;i<10;i++) outfile< 为什么说ofile的空格是必须的,因为你在通过数组一个一个给ofile读取数据的时候,如果没有空格。你输入 1 2 3 4 5 6 7 8 9,实际在文本中保存的形式是123456789,这对于之后我们int a,每次只读取一个整形数据来说是有误解的,会把a=123456789一次性赋到num0[i]中。
当然,归根结底是“从文件中读取这10个整数并对这些整数进行升序排序”这个题干就太蠢了,我一开始就有这十个数据还要特意去提取干什么。



