C++putchar()函数,除了输出到指定的输出文件



我正在C++教材中做一个练习,要求我创建一个程序;加密";并将加密的文本打印到输出文件。";加密";是相当简单的,只需要将每个字母表字符在字母表中的列表中向下移动两个位置。因此,a将被加密为c,e将被加密成g,等等。

我的方法是分配一个声明的整数对象";转换器";至值"0";输入+2";其中";输入";是从文件中读取的字符。我使用switch语句来确保语法字符,如句点、逗号等,在没有转换的情况下被复制。

我正经历着最糟糕的时刻,试图弄清楚如何才能打印出";转换器";作为字符而不是整数。这并不是说我不知道如何使用putchar((函数,而是我不能让这个函数将输出写入我的输出文本文件,而不是将其流式传输到标准输出!

有人知道如何操作这个函数来打印到输出文件而不是标准输出吗?是否还有其他我不知道应该使用的功能?这是我的代码:

/******************************************************************************
Problem 5-18
*******************************************************************************/
#include <iostream>
#include <string>
#include <fstream>
#include <cmath>
#include <iomanip>
using namespace std;
int main()
{
//Declare and Initialize Objects

char input, output;
int converter;
string filename;
ifstream fin;
ofstream fout;

//Collect Name of Input File

cout << "Enter filename: n" << endl;
cin >> filename;

//Open Input File and Check for Errors

fin.open(filename);

if(fin.fail())
{
cerr << "Error opening file " << filename << endl;
exit(1);
}

//Open Output filename

fout.open("Report.txt");

//Read Input File and Transcribe to Code

while(!fin.eof())
{
fin >> input;

switch(input)
{
case ' ':
fout << input;
break;

case '.':
fout << input;
break;

case ',':
fout << input;
break;

default:
converter = (input + 2);
fout << putchar(converter);
break;
}


}
return 0;

非常感谢您的帮助!

使用fout << converter;而不是fout << putchar(converter);

这是因为putchar是C库<stdio.h>。而您使用的是面向对象的C++库。这是两种不同的语言,尽管C++大多与C向后兼容。C语言处理文件的方式非常不同(主要使用在<stdio.h>库中定义的FILE结构和指针(,因为它缺乏C++中存在的面向对象的功能。

如果您想使用类似C的方式来完成任务,您必须重写整个源代码。

相关内容

  • 没有找到相关文章

最新更新