С Новым годом! Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 08.04.2012
Сообщений: 100
1

Не работает чтение из файла

10.04.2012, 19:52. Показов 714. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В функции vivod не работает getc. Почему так происходит? И посоветуйте пожалуйста книгу по работе с файлами на C\C++. Читаю Г.Шилдта "Полный справочник по си" не могу толком ничего найти.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include"string.h"
using namespace System;
void vvod(int n);
void vivod(int n);
int main(array<System::String ^> ^args)
{
    int n;
       
       printf("vvedite kol-vo strok\n");
       scanf("%d", &n);
       fflush(stdin);
       vvod(n);
       vivod(n);
       getch();
}
void vvod(int n)
{
    char **p;
    int i;
    
    p= (char**)malloc(n*sizeof(char*));
 
 
    FILE *fp;
 
      if((fp=fopen("f7.txt", "w+"))==NULL) {
        printf("Ошибка при открытии файла.\n");
          exit(1);
        }
 
     for(i=0;i<n;i++)
      {
          p[i]= (char*)malloc(80*sizeof(char));
      
       if(!p[i])
       {
           printf("pamyat ne videlena");
           exit (1);
       }
      
       gets(p[i]);
       
       fputs(p[i], fp);
       fputs("\n", fp);
      } 
     
     
     fclose(fp);
 
 
    
      for(i=0;i<n;i++)
         printf("%s\n",p[i]);
      
      for(i=0;i<n;i++) free(p[i]);
      free(p);
}
void vivod(int n)
{
    FILE *fp;
    char *p,c;
    int k,g,i;
 
    if((fp=fopen("f7.txt", "r"))==NULL)
    {
    printf("Ошибка при открытии файла.\n");
    exit(1);
    }
    
    g=1;k=1;
    for(i=1; ;i++)
    {
        p[i]=fgetc(fp);
        if (p[i]==p[i-1])
            g++;
        if(g>k)
            k=g;
        if( p[i]!=EOF)
            break;
    }
    printf(" kol-vo odinakovih podryad idushih simvolov %d",k);
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2012, 19:52
Ответы с готовыми решениями:

Не работает чтение из файла
Не работает функция считывания структуры из файла (fromfile()). И второе: неоходимо по номеру...

Не работает на С++ чтение с файла в сменную
Всем здрасте. Я делаю курсовую. И вот такое. У меня есть структура: struct Catalog { string...

Чтение из файла: getline() не работает
У меня такая ситуация: Есть два файла: words1.txt и cities-source.txt. Прилагаются. Берем первую...

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

5
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
10.04.2012, 20:05 2
Как именно не работает?
0
1 / 1 / 0
Регистрация: 08.04.2012
Сообщений: 100
10.04.2012, 20:18  [ТС] 3
ПИШЕТ:


Необработанное исключение типа "System.NullReferenceException" произошло в c7laba.exe

Дополнительные сведения: Ссылка на объект не указывает на экземпляр объекта.
0
Жарю без масла
867 / 749 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
10.04.2012, 20:22 4
в ф-ии vivod указатель p ни на что не указывает
0
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
10.04.2012, 20:28 5
p= (char**)malloc(n*sizeof(char*));
Напишите эту строку после обьявления p в vivod'е.
0
1 / 1 / 0
Регистрация: 08.04.2012
Сообщений: 100
10.04.2012, 21:08  [ТС] 6
Вставил p= (char*)malloc(n*80*sizeof(char)); , исправил саму функцию программа вроде как заработала. Посмотрите пожалуйста в конце я память правильно очищаю в Vivode?



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include"string.h"
using namespace System;
void vvod(int n);
void vivod(int n);
int main(array<System::String ^> ^args)
{
    int n;
       
       printf("vvedite kol-vo strok\n");
       scanf("%d", &n);
       fflush(stdin);
       vvod(n);
       vivod(n);
       getch();
}
void vvod(int n)
{
    char **p;
    int i;
    
    p= (char**)malloc(n*sizeof(char*));
 
 
    FILE *fp;
 
      if((fp=fopen("f7.txt", "w+"))==NULL) {
        printf("Ошибка при открытии файла.\n");
          exit(1);
        }
 
     for(i=0;i<n;i++)
      {
          p[i]= (char*)malloc(80*sizeof(char));
      
       if(!p[i])
       {
           printf("pamyat ne videlena");
           exit (1);
       }
      
       gets(p[i]);
       
       fputs(p[i], fp);
       fputs("\n", fp);
      } 
     
     
     fclose(fp);
 
 
    
      for(i=0;i<n;i++)
         printf("\n\n%s\n",p[i]);
      
      for(i=0;i<n;i++) free(p[i]);
      free(p);
}
void vivod(int n)
{
    FILE *fp;
    char *p,c;
    int k,g,i;
    
    p= (char*)malloc(n*80*sizeof(char));
    if((fp=fopen("f7.txt", "r"))==NULL)
    {
    printf("Ошибка при открытии файла.\n");
    exit(1);
    }
    
    g=1;k=1;
    for(i=0; ;i++)
    {
        p[i]=fgetc(fp);
        p[i+1]=fgetc(fp);
        if (p[i]==p[i+1])
            g++;
        if(g>k)
            k=g;
        if( p[i]==EOF)
            break;
    }
    free(p);
    printf("\n\n kol-vo odinakovih podryad idushih simvolov %d",k);
}
0
10.04.2012, 21:08
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2012, 21:08
Помогаю со студенческими работами здесь

Не работает чтение содержимого файла
Привет! Нашел скрипт по работе с файлами, но не хочет работать!! При нажатии на кнопку должен...

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

Не работает чтение из файла числовых переменных
Добрый день. Написал вот такую программу: #include&lt;conio.h&gt; #include&lt;stdio.h&gt; int main()...

Чтение/запись битового файла (не работает)
Программа по идее должна записывать/читать битовый файл, но она даже его не создаёт. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru