Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;使用模板对.txt文件进行排序_C++_Arrays_Sorting_C++11_File Io - Fatal编程技术网

C++ C++;使用模板对.txt文件进行排序

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

我正在尝试编写一个程序,它接收3个input.txt文件,使用模板对文件进行排序,并将排序后的数据写入3个输出文件。我试图排序的3个input.txt文件是IntFile.txt、FloatFile.txt和QUOTES.txt。文件中存储的数据类型分别为整数、双精度和字符串。现在我正试图让IntFile.txt进行排序,但在读取.txt文件并将其保存到数组以发送到我的模板进行排序时遇到了问题。一旦for循环从文件中读取最后一个数据,我就无法找到停止它的方法。到目前为止,我编写的程序是

`#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;
    }
}