【发布时间】:2015-07-11 19:16:42
【问题描述】:
我正在尝试使用 Microsoft Visual Studio 2013 在 C++ 中创建一个程序。该程序的主要目的是读取三个不同的文件(标题 1、标题 2 和标题 3)并将它们放在一起形成一个文件并创建该输出文件中的一个句子。我想出了一个我可以使用的函数,但这个函数只读取并打印 3 个文件到控制台窗口。当我尝试将cout 语句更改为一个输出文件时,我创建的输出文件是空白的......我不知道该做什么或如何构造代码。
#include<fstream>
#include<iostream>
#include<cstdlib>
using namespace std;
void readingFile(string[], ifstream &); //Funtion Prototype
int main()
{
string header1[50], header2[50], header3[50]; //Declaring array with 50 elements
int size1, size2, size3;
ifstream Fin, Fin2, Fin3;
ofstream Fout;
Fin.open("Headlines1.txt"); //Reading from these 3 files.
Fin2.open("Headlines2.txt");
Fin3.open("Headlines3.txt");
if (!Fin || !Fin2 || !Fin3) //Checking for unsuccessful open
{
cout << "Input file opening failed.\n";
cin.ignore();
return 1;
}
Fout.open("testingHeadlines.txt"); //Used for unsuccessful opening output
if (!Fout)
{
cout << "Output file opening failed.\n";
cin.ignore();
return 2;
}
cout << "Building.... Editing....\n" << endl;
cin.ignore();
cout << "Headlines file 1 below:\n" << endl;
readingFile(header1, Fin); //Function call
cout << endl << endl;
cout << "Headlines file 2 below:\n" << endl;
readingFile(header2, Fin2); //Function call
cout << endl << endl;
cout << "Headlines file 3 below:\n" << endl;
readingFile(header3, Fin3); //Function call
cout << endl << endl;
cin.ignore();
return 0;
}
//the function 'readingFile'
//Pre-conditions: Reads the contents from the files of Headlines1,2,and 3
//Post-conditions: Prints out the contents.
void readingFile(string[], ifstream &infile)
{
char next;
infile.get(next);
while (!infile.eof()) //Reading until EndOfFile
{
cout << next; //Problem is here?? I would think.
infile.get(next);
}
}
我只是不确定我是否在哪里说“问题就在这里??”是问题所在。每次我将 cout 更改为 outfile(我知道,我必须更改函数头中的参数)时,一旦打开 outfile 并且文件是空白的。
所有文件都包含随机的单词/短语,放在一起会组成一个句子。例如。 Headlines1 包含 '***Queen Jennifer*'** Headlines2 包含 '***有脑部手术*'** Headlines3 包含 '***在进食后30 颗墨西哥胡椒。*'** 和当放在一起时应该是'詹妮弗女王在吃了 30 颗墨西哥胡椒后做了脑部手术。' 但文件包含更多单词/ 我刚刚在示例中列出的短语。
当我运行上面的程序时,我能够读取所有三个标题文件,但它们是以从上到下的形式打印的。例如,我在控制台屏幕上的输出将是:
女王
詹妮弗
做过脑部手术
吃了 30 颗墨西哥胡椒后
问题: 让我的标题从左到右阅读。
将它们放入输出文件而不是控制台屏幕。
请帮忙。
【问题讨论】:
-
system("cat file1 file2 file3"); -
除了在这段代码中使用
Fout文件时打开它吗?
标签: c++ arrays visual-studio function computer-science