Чтение файла с помощью Си-программы на Mac OS для начинающих

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

И так запускаем для удобства xcode. Как это делать можно узнать из предыдущей статьи.

Исходный код программы с описаниями строк программы:

//
//  main.c
//  testing
//
//  Created by Maxim Arattsev on 08.11.12.
//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#include

int main () // вызов главной функции программы, с функции main начнется выполнение программы
{
int ch;   // описываем целочисленную переменную ch
int linecount = 0; // объявляем и инициализируем целочисленную переменную счетчика строк и присваиваем ему значение 0
int charcount = 0; // объявляем и инициализируем целочисленную переменную счетчика символов и присваиваем ему значение 0
int symbol_a = 0; // объявляем и инициализируем целочисленную переменную счетчика символов А и присваиваем ему значение 0

while ((ch = getchar () )!=EOF) // читаем в цикле символы в указанном файле до его окончания, EOF - конец файла(End-Of-File)
{
charcount++; // плюсуем к счетчику колличество прочитанных символов
if(ch == 'n' ) // если читаемый символ равен "n"(новая строка),
linecount ++; // то плюсуем к счетчику строк
if(ch == 'a' ) // если читаемый символ равен "а"(символ "а"),
symbol_a ++; // то плюсуем к счетчику символов "а"
}

printf("Я насчитал %d символов и %d строк, а так же %d символов a.n", charcount, linecount, symbol_a); // Выводим результат на терминале
}

В Xcode это выглядит так:

После Build переходим в терминал и идем в каталог с нашей программой. В каталоге у меня следующее:

a.out — скомпилированная программа
data — файл с данными. Содержание примерно такое:

main.c — исходный код программы.

Если у вас отсутствует файл a.out, то делаем его с помощью команды gcc main.c

Теперь исполняем программу a.out на файл data командой ./a.out < data. Получаем следующее:

Это и есть результат исполнения программы.

Написать ответ

Вы должны быть вошли в чтобы оставить комментарий.