Вопрос

Я начинающий программист на C и в настоящее время работаю над проектом по реализации алгоритма обнаружения объектов Виолы Джонса с использованием C.Я хотел бы знать, как я смогу хранить данные в двумерном массиве в файле, который можно легко переносить и получать к нему доступ из различных программных файлов (например,main.c, header_file.h и т. д.)

Заранее спасибо.

Это было полезно?

Решение

Недостаточно подробностей, чтобы понять, что вы ищете, но основная структура того, что вы хотите сделать, будет выглядеть примерно так:

open file.csv for writing
for(iterate through one dimension of the array using i)
{
for(iterate through the other dimension of the array using j)
   { 
   fprintf(yourfilehandle,"%d,",yourvalue[i][j]);
   }
fprintf(yourfilehandle,"\n");
}
close your file

Как было предложено другими, это оставит вас с .CSV file, что является довольно хорошим выбором, поскольку его легко читать и анализировать, и вы можете без проблем открыть файл в Блокноте или Excel и просмотреть его.

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

Обратите внимание, что в конце строки остается лишняя запятая.Если вас это беспокоит, достаточно легко выполнить предварительные и последующие условия, чтобы запятые ставились только там, где вы хотите.Намекать:он включает в себя печать запятой перед записью внутри второго цикла for, уменьшение количества записей, которые вы перебираете для внутреннего цикла for, и распечатку первого и последнего случая каждой специальной строки, непосредственно до и после внутреннего цикла for, соответственно.Сложнее объяснить, что делать, наверное.

Вот ссылка для файлового ввода-вывода в стиле C и вот учебник.

Другие советы

Не зная ничего о каком виде данных, которые вы храните, я бы сказал, чтобы хранить это как матрицу.Вам нужно будет выбрать разделитель для разделения ваших элементов (вкладка или пространство - это обычный выбор, ака «TSV» и «CSV», соответственно), а затем что-то, чтобы отметить конец строки (новая строка - хороший выбор здесь),

Так что ваш сохраненный файл может выглядеть что-то вроде:

10 162 1 5
7 1 4 12
9 2 2 0
.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top