Автор Тема: Частота встречаемости литеры в файле (СИ)  (Прочитано 6511 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nikgamer

  • Ветеран
  • *****
  • Сообщений: 610
    • Просмотр профиля
Собственно, пишу сюда в первый раз. Задача такая. Дан файл, нужно вывести на экран частоту встречаемости символов в нем (предположим что в файле 1 строка).
Собственно, язык - чистый СИ и вот с этим главная проблема, ибо я работаю на яве, соответственно я с сями не очень дружу, но вот заставили делать.
Мой индусский алгоритм состоит в следующем: брать цикл, потом для каждого элемента запускать цикл, который ищет такие же элементы в строке и накручивает счетчик, а вместо повторяющихся символов ставит пробелы. Ну и принтф -строка+счетчик.
Внимание, вопрос. Как написать часть кода, отвечающая за файл, чтобы компилятор не ругался? Скажем, на такую строку fcanf(f,"%s",s) где f-файл, а s-заданный чаровский массив, дебагер выдает критикал эррор и говорит мне, что у меня там полный ахтунг. Беда в том, что я кроме fscanf ничего не знаю.
Если подскажите кошерный алгоритм, вместо моего индусского, только рад буду. НО интересует прежде всего синтаксис. Спасибо.
депрессивный зануда и социофоб.

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #1 : 08 Апреля 2010, 12:26:04 »
попробуй нагуглить книгу Г.Шилдт "С++ . Базовый курс"....там в конце он как раз описывает подробно работу с файлами в си и сипп...если не найдешь - отсканю и выложу
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nikgamer

  • Ветеран
  • *****
  • Сообщений: 610
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #2 : 08 Апреля 2010, 13:54:16 »
Да вопрос вот в чем, какова может быть причина, что выдается критикал эррор на месте fscanf ? Параметры заданы правильно.
депрессивный зануда и социофоб.

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #3 : 08 Апреля 2010, 18:37:23 »
для него никакую библиотеку подключать не надо?
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nikgamer

  • Ветеран
  • *****
  • Сообщений: 610
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #4 : 08 Апреля 2010, 19:16:06 »
Фихзнает, я поставил стандартные assert, stdio, conio, string, stdlib.
депрессивный зануда и социофоб.

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #5 : 08 Апреля 2010, 19:20:42 »
в фсканф надо передать указатель...что бы получить указатель на файл,нужно использовать фопен... ты так делеаешь?
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nikgamer

  • Ветеран
  • *****
  • Сообщений: 610
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #6 : 08 Апреля 2010, 20:13:15 »
Вот кусок с описанием строки и файла.
char s[100];
FILE*f=fopen("C:\...\input.txt","r");
fscanf (f, "%s", s);
депрессивный зануда и социофоб.

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #7 : 08 Апреля 2010, 20:50:34 »
попробуй добавить после того как сосканфил fclose(f);  эта функция закрывает поток,открытый опеном
« Последнее редактирование: 08 Апреля 2010, 20:54:59 от Данила »
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nikgamer

  • Ветеран
  • *****
  • Сообщений: 610
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #8 : 08 Апреля 2010, 21:07:27 »
Нет. Все равно. Говорит, что stream!=NULL (дословно)
депрессивный зануда и социофоб.

Оффлайн samar

  • Пользователь
  • **
  • Сообщений: 41
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #9 : 08 Апреля 2010, 21:45:53 »
Вот кусок с описанием строки и файла.
char s[100];
FILE*f=fopen("C:\...\input.txt","r");
fscanf (f, "%s", s);

Правильнее будет
FILE*f=fopen("C:\\...\\input.txt","r");
т.е. надо использовать двойной знак "\"

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #10 : 09 Апреля 2010, 19:01:17 »
А вам обязательно юзать С можете ли вы использовать С++ так как там проще эти операции идут вот справка вам ссылка
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #11 : 11 Апреля 2010, 18:56:47 »
ну так что там с файлом? если заработало - поделись как сделал)
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн Nikgamer

  • Ветеран
  • *****
  • Сообщений: 610
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #12 : 11 Апреля 2010, 19:12:24 »
ну так что там с файлом? если заработало - поделись как сделал)
Не работает. Я слегка в отчаянии.
депрессивный зануда и социофоб.

Оффлайн Данила

  • Глобальный модератор
  • *****
  • Сообщений: 1657
  • Математик-экстрасенс
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #13 : 11 Апреля 2010, 19:46:20 »
может тогда юзать не фсканф,а фрид? и еще,не могу найди ни одного примера,где в фопен передается полный путь к файлу...может в этом косяк?
Просьба не кидать мне в ЛС Ваши задания...создаем тему,пишем свое задание,наработки\идеи...полностью и нахаляву ничего не решаю

Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩

Оффлайн InfStudent

  • Модератор
  • *****
  • Сообщений: 1356
  • Куба любовь моя))
    • Просмотр профиля
Re: Частота встречаемости литеры в файле (СИ)
« Ответ #14 : 11 Апреля 2010, 20:02:53 »
Там по моему если полный путь бодяга со слешами
Прежде чем задавать вопрос в раздел по программированию повтори теорию и посмотри FAQ! Просьба не кидайте задания в ЛС и не надо мне писать: "посмотри мою задачу!!!" Я смотрю все задачи в разделе когда на форуме
Учтите что подобные ЛС будут оставлены без внимания!
УКАЗЫВАЙТЕ ЯЗЫК ПРОГРАММИРОВАНИЯ НА КОТОРОМ ДОЛЖНА БЫТЬ РЕШЕНА ЗАДАЧА
Вам в помощь:
∫ ¼ ½ ¾ ⅓ ⅔ ⅛ ⅜ ⅝ ⅞ ² ³ ± ~ ‰ ∞ √ ∑ ∆ ℮ ∩ ≡ ≤ ≥ ≈ ∩