Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
#1

обработка файлов - C++

15.05.2012, 12:24. Просмотров 418. Ответов 6
Метки нет (Все метки)

дан текстовый файл. получить строку, в которой минимальное число слов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2012, 12:24     обработка файлов
Посмотрите здесь:

Обработка файлов - C++
Написать программу обрабатывающую текстовые файлы, чтобы создавался текстовый файл, в котором символы табуляции , пропуски, которые...

Обработка файлов - C++
нужна программа, в которой ты вводишь имя файла с клавы, она открывает его, ты задаешь условие, которое программа удалит везде в этом файле...

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

обработка файлов - C++
Помогите,пожалуйста.как извлекать из файла нужную информацию?(на си) например каждая строчка содержит дату,время,температуру и тд .И...

Обработка файлов - C++
Программа рассчитывает и показывает правильный результат через раз. Как я понял прога работает всегда НЕ правильно, возможно мне везет и...

Обработка файлов - C++
Дан текстовый файл. Каждая строка имеет следующий формат: фамилия пол рост. Создать новый текстовый файл, включающий список мужчин из...

c++ обработка файлов - C++
ОЧЕНЬ нужна программа на c++. Из текстового файла А.txt вывести кол-во символов (не учитывая пробел) в файл B.txt Например в файле...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
15.05.2012, 16:05     обработка файлов #2
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
#include <iostream>
#include <fstream>
 
#define N 256
 
typedef struct Lines
{
      char* m_line;
      int m_wcount;
} LINES;
 
using namespace std;
 
int main()
{
     const char* filename = "d:\\input.txt";
     ifstream ifs(filename,ifstream::in);
 
     static char line[256] = "\0"; int count = 0; 
     LINES* lines = (LINES*)malloc(N * sizeof(LINES));
     while (ifs.peek() >= 0 && ifs.getline(line, 256))
     {
          lines[count].m_line = new char[256];
          strcpy(lines[count++].m_line, line);
     }
 
     for (int index = 0; index < count; index++)
     {
          lines[index].m_wcount = 1;
          char* line = lines[index].m_line;
          for (int q = 0; line[q] != '\0'; q++)
              if (isspace(line[q])) lines[index].m_wcount++;
     }
 
     int min = 0;
     for (int q = 0; q < count; q++)
          if (lines[q].m_wcount < lines[min].m_wcount)
              min = q;
 
     printf("%s\n", lines[min].m_line);
}
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
29.05.2012, 11:24  [ТС]     обработка файлов #3
создаем папку, в ней создаем файл с программой и текстовый документ in.txt, в котором будет 5 строк(строки для наглядности разделю запятыми) : 12345678,1234,123,12
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
#include<iostream>
#include<stdio.h>
#include<locale>
#include<string>
using namespace std;
 
 
int main()
{FILE *old, *new1;
 int x=0,min=0,j=0;
 char a; char mas[100];
  if((old=fopen("in.txt","r+"))!=NULL)
    {for(int i=1; (a=getc(old))!='\n'; i++)
      {x++;
      fseek(old,i,SEEK_SET);
      
      }
    min=x;
     x=0;
     for(int i=1; (a=getc(old))!=EOF; i++)
      {x++;
      fseek(old,i,SEEK_SET);
       if((int)a==0x0a)
        {x--;
         if(x<min)  
           { min=x;;
             x=0;
           fseek(old,0,SEEK_CUR);
           new1=fopen("samaya korotkaya stroka.txt","w+");
             while((a=getc(old))!=0x0a)
               putc(a,new1);
             
           }
         else 
           x=0;
            
        }
      
      }
     
    }
  else
    cout<<"Исходный документ пустой!!!"<<endl;
       
system("pause");
}
почему программа не проверяет остальные строки и всегда выдает вторую?
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
29.05.2012, 11:44     обработка файлов #4
Данный код вряд-ли приведет к решению данной задачи, поскольку файл необходимо считывать не посимвольно с помощью fgetc, а построчно используя fgets, и далее считать длину каждой строки отдельно при помощи strlen.
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
29.05.2012, 13:30  [ТС]     обработка файлов #5
А как тогда переделать?
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
03.06.2012, 09:09  [ТС]     обработка файлов #6
zitxbit, ваша программа также выдает всегда вторую строку не зависимо больше в ней символов или меньше..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2012, 09:17     обработка файлов
Еще ссылки по теме:

обработка файлов - C++
Записать в файл п произвольных натуральных чисел Переписать в другой файл те элементы, которые кратны К. Вывести полученный файл на печать.

Обработка текстовых файлов - C++
Помогите написать программу для заданного файла удалить все строки, яки начинаются с &quot;*&quot;. Результат сохранить в том же файли. ...

Создание и обработка файлов - C++
В массиве целых чисел M (14) найти среднее арифметическое всех четных элементов, стоящих на четных местах. Вывести на экран массив и...

Обработка звуковых файлов - C++
Товарищи, с помощью каких библиотек, заголовочных файлов, структур, классов и т.д. можно обработать звуковые файлы (например WAV). ...

СОЗДАНИе И ОБРАБОТКа ФАЙЛОВ - C++
Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер, количество проработанных часов за месяц, почасовой тариф. Рабочее время...


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

Или воспользуйтесь поиском по форуму:
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
03.06.2012, 09:17     обработка файлов #7
Можн оиспользовать следуйщий метод: допустим 1 строка самая короткая, считываем 2 строку сравниваем если первая меньше то оставляем все на своих местах,иначе минимальная строка это 2 и дальше читаем 3 строку и сравниваем и.т.д. до конца файла .
Yandex
Объявления
03.06.2012, 09:17     обработка файлов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru