C++ C++;使用模板对.txt文件进行排序
我正在尝试编写一个程序,它接收3个input.txt文件,使用模板对文件进行排序,并将排序后的数据写入3个输出文件。我试图排序的3个input.txt文件是IntFile.txt、FloatFile.txt和QUOTES.txt。文件中存储的数据类型分别为整数、双精度和字符串。现在我正试图让IntFile.txt进行排序,但在读取.txt文件并将其保存到数组以发送到我的模板进行排序时遇到了问题。一旦for循环从文件中读取最后一个数据,我就无法找到停止它的方法。到目前为止,我编写的程序是C++ C++;使用模板对.txt文件进行排序,c++,arrays,sorting,c++11,file-io,C++,Arrays,Sorting,C++11,File Io,我正在尝试编写一个程序,它接收3个input.txt文件,使用模板对文件进行排序,并将排序后的数据写入3个输出文件。我试图排序的3个input.txt文件是IntFile.txt、FloatFile.txt和QUOTES.txt。文件中存储的数据类型分别为整数、双精度和字符串。现在我正试图让IntFile.txt进行排序,但在读取.txt文件并将其保存到数组以发送到我的模板进行排序时遇到了问题。一旦for循环从文件中读取最后一个数据,我就无法找到停止它的方法。到目前为止,我编写的程序是 `#in
`#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include "sorting.h"
using namespace std;
int main()
{
ifstream inNumbers("IntFile.txt");
ifstream inFloaters("FloatFile.txt");
ifstream inWords("QUOTES.txt");
ofstream outNumbers("SortedInt.txt");
ofstream outFloaters("SortedFloat.txt");
ofstream outWords("SortedQuotes.txt");
int i, length = 0;
int data[100];
if (!inNumbers)
{
cerr << "IntFile.txt file could not be opened" << endl;
exit(1);
}
if (!inFloaters)
{
cerr << "FloatFile.txt file could not be opened" << endl;
exit(1);
}
if (!inWords)
{
cerr << "QUOTES.txt file could not be opened" << endl;
exit(1);
}
for (i = 0; data[i] ; ++i)
{
inNumbers >> data[i];
length += 1;
}
sorting(data[100], length);
}`
这个街区不对
for (i = 0; data[i] ; ++i)
{
inNumbers >> data[i];
length += 1;
}
您尚未初始化数据
,但正在for
循环中使用其成员的值
您需要的是符合以下逻辑的东西:
for (i = 0; i < 100 && inNumbers; ++i)
{
inNumbers >> data[i];
if ( inNumbers )
{
length += 1;
}
}
for(i=0;i<100&&inNumbers;++i)
{
数字>>数据[i];
如果(以数字表示)
{
长度+=1;
}
}
IntFile.txt中的数字是否在单独的行中?我编辑了这个问题以显示一个示例input@StephenOsborne排序(数据[100],长度)代码>这与您认为的不同。这不会将数组发送到排序
。它将(无效)条目数据[100]
发送到排序功能。好的,谢谢,我是否将其更改为“排序(数据[],长度)”@StephenOsborne-否,排序(数据、长度)
。数组衰变为指针,在这个上下文中数组的名称用作指向数组中第一个元素的指针。
for (i = 0; i < 100 && inNumbers; ++i)
{
inNumbers >> data[i];
if ( inNumbers )
{
length += 1;
}
}