0

TestData.txt ファイルを読むと、間違った出力が得られます。私は何を間違っていますか。私は int 配列を使用しているので、データを配列に保存した後に MergeSort を実行できます。

TestData.txt
-------------------
31791   564974  477059  269094  972335
739154  206345  634644  227684  398536
910177  507975  589785  67117   395140
598829  372499  364165  450187  996527
700285  263407  918021  661467  457544
656297  846316  221731  240676  68287
913 141702  845802  477617  109824

{
int myArray[1000];
     int i;
    //reading givin data 
    const char* filename= "TestData.txt";   
    ifstream file(filename);
    if(file.is_open())
    {
        for(i = 0; i <=999; ++i)
        {
            file >> myArray[i];//storing data to array


        }
    }
4

3 に答える 3

1

ifstream がend of fileであるかどうかを確認する必要があります。その場合、バインドされたファイルからガベージ値を取得します。

1 つの変更で、コードは OK です。

変化する:

   for(i = 0; i <=999; ++i)

に:

   for(i = 0; i <=999 && !file.eof(); ++i)
于 2013-09-06T11:42:53.000 に答える
-3

int が間違っていなければ、-32768 から 32767 までのデータを保持できます。したがって、それよりも大きな値 (ソース ファイルから取得した値) がある場合、期待する結果は得られません。

ところで、あなたが得ている出力も知っておくといいでしょう。

于 2013-05-03T14:44:52.443 に答える