2016-04-01 8 views
-1

私は学校の仕事のために提出しなければならない2つの問題でimがうまくいかないことを知りません。 C++を書こうと思ったのは初めてのことなので、愚かであれば謝っていますが、これでもエラーメッセージが不明なエスケープシーケンスが続いています(私は盗作の答えが出てからこのポストを削除します)誰かを怒らせることを意味する。すべてのヘルプをありがとうコードブロックがテキストファイルの配列エラーを入力している

私が解決しなければならない質問は次のとおりです。 2次元配列を使用して年間の最高月と最低月を格納するC++プログラムを作成します。プログラムは、年平均、最高平均、最低および最高の温度を出力する必要があります。プログラムは以下の関数で構成されている必要があります。

関数getData:この関数は、2次元配列のデータを読み込んで格納します。

Function averageHigh:この関数は、年間の平均気温を計算して返します。

関数averageLow:この関数は、年間の平均気温を計算して返します。

Function indexHighTemp:この関数は、配列内で最も高い高温のインデックスを返します。

機能indexLowTemp:この関数は、配列内の最も低い低温インデックスを返します。

(これらの機能は、すべての適切なパラメータを持っている必要があります。)

ファイルtemperaturedata.txtを使用すると、バックスラッシュ文字を使用する場合は、あなたが2つのバックスラッシュを使用する必要がありますD2L

#include <cstdio> 
#include <cstdlib> 
#include <iostream> 
#include <iomanip> 
#include <fstream> 

using namespace std; 

void getData (ifstream& inData, double extremes [12][2]) ; 
void averageHigh (double extremes [12][2], double& avgHigh) ; 
void averageLow (double extremes [12][2], double& avgLow) ; 
void indexHighTemp (double extremes [12][2], int& highMonth) ; 
void indexLowTemp (double extremes [12][2], int& lowMonth) ; 

int main(int nNumberofArgs, char* pszArgs[]) 
{ 



    ifstream inData ; 
    double extremes [12] [2] ; 
    double avgHigh, avgLow ; 
    int highMonth, lowMonth ; 

    inData.open("C:\Users\Owner\Desktop\C++ homework\temperature problem\temperature problem ........\temperaturedata.txt"); 
if(!inData) 

{ 
    cout << "There was an error opening the input file" << endl ; 
    exit (1) ; 
} 
    getData (inData, extremes) ; 


    averageHigh (extremes, avgHigh) ; 
    cout << fixed << showpoint << setprecision(2) ; 
    cout << "The average high temperature was " << avgHigh << " degrees" << endl ; 


    averageLow (extremes, avgLow) ; 
    cout << "The average low temperature was " << avgLow << " degrees" << endl ; 


    indexHighTemp (extremes, highMonth) ; 
    cout << "The month with the highest high temperature was " << highMonth << endl ; 


    indexLowTemp (extremes, lowMonth) ; 
    cout << "The month with the lowest low temperature was " << lowMonth << endl ; 

     return 0 ; 
} 

void getData (ifstream& inData, double extremes [12][2]) 

{ 
    int row ; 

    for (row=0; row<12; row++) 

     inData >> extremes [row][0] >> extremes [row][1] ; 

     return ; 
} 
void averageHigh (double extremes [12][2], double& avgHigh) 

{ 
    double sum = 0 ; 

    for (int i=0; i<12; i++) 
     sum += extremes [i][0] ; 
    avgHigh = sum/12.0 ; 
    return ; 
} 
void averageLow (double extremes [12][2], double& avgLow) 

{ 
    double sum = 0 ; 

    for (int i=0; i<12; i++) 
     sum += extremes [i][1] ; 
    avgLow = sum/12.0 ; 
    return ; 
} 
void indexHighTemp (double extremes [12][2], int& highMonth) 

{ 
    int ind = 0 ; 
    double highest = extremes [0][0] ; 

    for (int i=0; i<12; i++) 
     if (extremes[i][0] > highest) 
     { 
      highest = extremes[i][0] ; 
      ind = i ; 
     } 
     highMonth = ind ; 
     return ; 
} 
void indexLowTemp (double extremes [12][2], int& lowMonth) 

{ 
    int ind = 0 ; 
    double lowest = extremes [0][1] ; 

    for (int i=0; i<12; i++) 
     if (extremes[i][1] < lowest) 
     { 
      lowest = extremes[i][0] ; 
      ind = i ; 
     } 
     lowMonth = ind ; 
     return ; 
} 
+3

でライン25を交換 - 種類の答えのうちのインセンティブを取る、私はカルマのインセンティブが残っていると思います。 –

+0

私はそれを掲載しても構わないと思っていますが、私の教授がこのウェブサイトを参照してくれたので、私は別の学生と前に授業で問題を抱えていたので、そのほとんどを取り除き、解決されたエラー解決策をこのまま投稿してください。@JonnyHenly – BlindSin

+0

コードブロックが必要な場合は、 '\' 'を使用しないでください。 – v7d8dpo4

答えて

0

です。バックスラッシュ文字を使用する場合は'\\'を使用してください。文字列にしたい場合は"\\"を使用してください。これは、バックスラッシュ文字がエスケープシーケンスの先頭を意味するためです。私は盗作酒*の外に答えを取得した後、私はこの投稿を削除します*

inData.open("C:\\Users\\Owner\\Desktop\\C++ homework\\temperature problem\\temperature problem ........\\temperaturedata.txt"); 
+0

それはこのように働いてくれて、助けてくれてありがとう! – BlindSin

関連する問題