Вывод файла C ++ - PullRequest
       2

Вывод файла C ++

0 голосов
/ 27 марта 2011

Все,

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

fstream fs;
fs.clear();
fs.open(dataFileName.c_str(), fstream::out| fstream::trunc);
std::cout << dataFileName.c_str() << std::endl;

for (int idx = 0; idx < theNumberHorizontalPoints; ++idx)
{
   for (int zdx = 0; zdx < theVerticalProfilePtr->getNumberVerticalLevels(); ++zdx)
   {
      fs << theThermalArray[idx][zdx] << " ";
   }
   fs << std::endl;
   fs.flush();
}
fs.close();

Ответы [ 2 ]

0 голосов
/ 27 марта 2011

Если theNumberHorizontPoints равен нулю или меньше, вы дадите результат, который вы описываете.

0 голосов
/ 27 марта 2011

Важные части кода отсутствуют. Каковы размеры вашего массива?

Остальная часть кода кажется хорошей, поэтому я написал небольшое тестовое приложение, которое записывает числа [1-6] в файл с именем demo.txt .

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream fs;
    fs.clear();
    fs.open("demo.txt", fstream::out | fstream::trunc);

    int theThermalArray[][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
    int theNumberHorizontalPoints = 2;

    for (int idx = 0; idx < theNumberHorizontalPoints; ++idx)
    {
       for (int zdx = 0; zdx < 3; ++zdx)
       {
          fs << theThermalArray[idx][zdx] << " ";
       }
       fs << std::endl;
       fs.flush();
    }
    fs.close();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...