Прочитать еще одну строку из входного файла в C ++ - PullRequest
0 голосов
/ 04 ноября 2018

Итак, я пытаюсь прочитать из входного файла и перевести эти данные в выходной файл с гистограммой. Я могу открыть и прочитать входной файл, но я застрял в цикле, потому что я не знаю, как перейти к следующей строке для другого набора данных во входном файле.

#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>

using namespace std;

int main() {
   ifstream inFile;
   ofstream outFile;
   unsigned int storeNum;
   long long int salesData;
   string fileName;

   cout << "Please enter file name: ";
   cin >> fileName;

   inFile.open(fileName);
   if (inFile) {
      while (inFile >> storeNum >> salesData, '\n')
      {
         if (storeNum < 1 || storeNum > 99)
         {
            cout << "The store number " << storeNum << setw(2) << "is not valid" << endl;
         }
         if (salesData < 0)
         {
            cout << "The sales value for store " << storeNum << setw(2) << " is negative" << endl;
         }
         else {
         outFile.open("saleschart.txt");
         outFile << "SALES BAR CHART" << endl;
         outFile << "(Each X equals 1,000 dollars)" << endl;
         while (storeNum > 0)
         { 
            outFile << "Store " << storeNum << setw(2) << ": ";
            while (salesData > 1000)
            { 
               outFile << "X";
               salesData = salesData - 1000;
            }
            outFile << endl;
         }
         }


      }
      inFile.close();
   }

   else
   {
      cout << "File " << fileName << " could not be opened" << endl;
   }

   system("pause");
   return 0;
}

1 Ответ

0 голосов
/ 04 ноября 2018

Чтобы прочитать файл построчно, используйте std::getline:

std::string text_line;
while (std::getline(inFile, text_line))
{
//...
}

Чтобы извлечь числа из строки, используйте std::istringstream:

std::istringstream text_stream(text_line);
text_stream >> storeNum >> salesData;

Кроме того, поищите в интернете слова «c ++ read file space selected» или «c ++ read file CSV».

...