誰かがこれを間に合うように見るかどうかはわかりませんが、やってみます... 私は C++ の入門クラス (学部生) にいて、月曜日の朝に期限が来る課題があります...(はい!先延ばし:)、)
Ok。この形式で生徒の記録を読み取る必要があります。
Adriana,Smith,692493955,50,43,52,86,74,83
Adrienne,Johnson,480562092,75,72,93,71,81,89
Bla, Bla, Bla
ファイル (最大 200) から並べ替えなどを行います。
他の必要な機能はすべて作成できましたが、確認できません。
ファイルを開き、各行を読み取り、各行内で各トークンを読み取り、それらを一時配列に格納する関数を作成しました。この tempArr[9] は、実際の配列 [9][200] に配置される前に検証されます。
ファイルを開き、最初の行を読み取って配列にトークン化することができましたが、while ループが繰り返されると、ファイルの最初の行が再び読み取られるため、実際の配列を出力すると +/ が返されます。 -200回の最初の記録。
私は自分のマニュアル、cplusplus.com の getline() 情報を何度も読み直し、フォーラムで検索し、約 100 万回コードを切り替えました。
助けて!
fn は次のとおりです。
void getFile(std::string realArray[][200], const int ROW_SIZE)
{
std::string filename, token, line;
int positionLine(0);
int positionToken(0);
int row(0);
int numOfLine(0);
const int ROWS (9);
const int MAX_RECORDS (200);
std::string tempArray[ROWS];
std::cout << "Please enter the desired filename with it's extension:\t ";
std::cin >> filename;
const char *file=filename.c_str();
std::ifstream input(file, std::ios::in);
while (!input.is_open())
{
std::cout << "The file did not open correctly. \n\nPlease enter a valid filename.\n";
std::cin >> filename;
const char *file=filename.c_str();
std::ifstream input(file, std::ios::in);
}
while (input.good() && numOfLine < MAX_RECORDS)
{
getline (input,line);
std::istringstream inputss (line);
while (getline(inputss, token, ',') && row < ROWS )
{
tempArray[row] = token;
row++;
}
numOfLine++;
validateData (tempArray,ROWS , numOfLine);
storeData(tempArray, ROWS, realArray, ROW_SIZE, numOfLine);
}
if (numOfLine == MAX_RECORDS)
{
std::cout << "The maximum number of records to be read (" << MAX_RECORDS << ") has been reached.\n";
}
}
PS私はVisual Studio 2010に取り組んでおり、私のファイルは* .dosです
ああ、私は取り出した
名前空間 std を使用します。
それが与えていたので: cout is ambiguous error.
ありがとうございます。