我对 c++ 相当陌生。我现在正在上一门关于结构和对象的介绍课。我们最后检查了文件,我想到了编写一个加密文本文件的程序。只是为了我自己的乐趣和知识(这不是家庭作业)。我还没有编写加密,它将是私钥,因为有人告诉我这是最简单的,这是我第一次尝试这样的事情。无论如何,我现在只是将代码编写为函数以确保它们工作,然后将它们放入类中并扩展程序。所以,现在我的代码将打开并写入一个文件。我想在加密之前查看我刚刚在cmd窗口中编写的文件,所以我知道我可以看到之前和之后。继承人的代码:
//This program will create, store and encrypt a file for sending over the inernet
#include<iostream>
#include<cstdlib>
#include<iomanip>
#include<string>
#include<fstream>
#include"fileSelect.h"
using namespace std;
void openFile(fstream &);
void readFile(fstream &);
int main() {
//output file stream
fstream outputStream;
fstream inputStream;
string fileName, line;
openFile(outputStream);
readFile(inputStream);
system("pause");
return 0;
}
//open file Def
void openFile(fstream &fout){
string fileName;
char ch;
cout<<"Enter the name of the file to open: ";
getline(cin, fileName);
//try to open the file for writing
fout.open(fileName.c_str(),ios::out);
if(fout.fail()){
cout<<"File, "<<fileName<<" failed to open.\n";
exit(1);
}
cout<<"Enter your message to encrypt. End message with '&':\n";
cin.get(ch);
while(ch!='.'){
fout.put(ch);
cin.get(ch);
}
fout.close();
return;
}
void readFile(fstream &fin){
string fileName, line;
cout<<endl;
cout<<"Enter the name of the file to open: ";
getline(cin, fileName);
//check file is good
if(fin.fail()){
cout<<"File "<<fileName<<" failed to open.\n";
exit(1);
}
cout<<"Opening "<<"'"<<fileName<<"'" <<endl;
//cout<<"Enter the file to open: ";
//cin>>fileName;
fin.open(fileName.c_str(),ios::in);
//readFile(inputStream);
if(fin){
//read in data
getline(fin,line);
while(fin){
cout<<line<<endl;
getline(fin,line);
}
fin.close();
}
else{
cout<<"Error displaying file.\n";
}
return ;
}
这将编译并运行。如果 openFile() 被注释掉并且 readFile() 函数被自己调用,文件将读取 openFile() 中写入的内容。它只是不会像我想要的那样一个接一个地做。这可能只是我缺少的一个简单修复,但现在它变得有点头疼。任何帮助将不胜感激。谢谢你。