Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с Текстовым файлом, Поиск пустой строки 
:(
    Опции темы
Kinch
Дата 25.2.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



Уважаемые программисты! Нужен ваш хелп)

задание такое:

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

помогите пжлст) оч нуна
PM MAIL   Вверх
zim22
Дата 25.2.2009, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Код
// 252.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string>

int _tmain(int argc, _TCHAR* argv[])
{
    std::ifstream in("file.txt");
    if (!in)
    {
        std::cerr << "Error. File wasn't open / exist" << std::endl;
        return -1;
    }
    std::string str;
    getline(in, str, '\032');
    std::string::size_type pos = 0, cnt = 0;    
    while ((pos = str.find("\n\n", pos)) != std::string::npos)
    {    
        ++pos;
        ++cnt;
    }
    if (str[0] == '\n')
        ++cnt;
    if (str[str.size() - 1] == '\n')
        ++cnt;
    
    std::cout << cnt << std::endl;
    return 0;
}





Это сообщение отредактировал(а) zim22 - 25.2.2009, 19:46

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  file.txt 0,05 Kb


--------------------
PM MAIL   Вверх
Kinch
Дата 25.2.2009, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



тобиш условие перебора таково, что если 1й элемент строк ==\n, то она считаецо пустой?)
PM MAIL   Вверх
Dmi3ev
Дата 25.2.2009, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Код

#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int counter1=0;
    int counter2=0;
    
    ifstream my_in;
    char fn_in[]="D:\\power.txt";
    
    char s[256];

    my_in.open(fn_in);
    
    while (!my_in.eof())
    {
        my_in.getline(s, 255);
        (!strlen(s)) ? counter1++ : counter2++; 
    }
    my_in.close();
    
    cout<<"Results: "<<endl;
    cout<<"Number of empty strings: "<<counter1<<endl;
    cout<<"Number of other strings: "<<counter2<<endl;
    cout<<"Number of strings: "<<counter1+counter2<<endl;
    

    system ("pause");
    return 0;
}



--------------------

PM MAIL   Вверх
zim22
Дата 25.2.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Kinch @  25.2.2009,  19:52 Найти цитируемый пост)
 если 1й элемент строк ==\n, то она считаецо пустой?)

угу


--------------------
PM MAIL   Вверх
Kinch
Дата 25.2.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



Цитата

угу 


спс) с условием перебора я разобрался))

но прога пачмуто выдает ошибку [C++ Error] Unit1.cpp(1): E2209 Unable to open include file 'stdafx.h'

PM MAIL   Вверх
zim22
Дата 25.2.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Kinch, удали эту строчку
Код
#include "stdafx.h"


а эту 
Код
int _tmain(int argc, _TCHAR* argv[])


поменяй на эту:
Код
int main()




--------------------
PM MAIL   Вверх
Acer
Дата 25.2.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 5.9.2007
Где: UA::DN

Репутация: нет
Всего: 8



Цитата(Kinch @ 25.2.2009,  20:06)
но прога пачмуто выдает ошибку [C++ Error] Unit1.cpp(1): E2209 Unable to open include file 'stdafx.h'

stdafx.h - это стандартный заголовок, который добавляет в код MSVS... Убери его из списка включаемых файлов и будет все ок
PM MAIL   Вверх
Kinch
Дата 25.2.2009, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



zim22, ок все сделал) тада еще вопрос-в каком каталоге должен храницо файл?
PM MAIL   Вверх
zim22
Дата 25.2.2009, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



если во время комплиляции, то в том же каталоге, где и исходные коды программы. (*.cpp)
если экзешник запускаешь самостоятельно, то в том же каталоге, где и exe.


--------------------
PM MAIL   Вверх
Kinch
Дата 25.2.2009, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



zim22, агромное спасибо))) тада паследняя просьба)) можеш прокоментить каждое действие в проге?) если не сложно))
прост мы несколько иначе пишем проги, поетому мне не оч понятно((
PM MAIL   Вверх
zim22
Дата 25.2.2009, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Код

// ПОДКЛЮЧАЕМ ЗАГОЛОВКИ
#include "stdafx.h"
#include <fstream> // содержатся классы для работы с файлами
#include <iostream> // вывод на экран
#include <string> // строки

// НАЧАЛО ФУНКЦИИ MAIN
int _tmain(int argc, _TCHAR* argv[])
{
    std::ifstream in("file.txt"); // создаём поток типа ifstream. открываем файл для чтения.
    if (!in) // проверяем успешно ли был открыт файл
    {
        std::cerr << "Error. File wasn't open / exist" << std::endl; // матюкаемся
        return -1; // завершаем программу с кодом ошибки -1
    }
    std::string str; // создаём строку пустую
    getline(in, str, '\032'); // запихиваем в эту строку весь файл.
    std::string::size_type pos = 0, cnt = 0;    
    while ((pos = str.find("\n\n", pos)) != std::string::npos) // ищем вхождения подстрок "\n\n"
    {    
        ++pos; // если мы попали сюда, значит подстроку нашли. увеливаем pos на 1 для того, чтобы при след.итерации функция str.find(...) искала с pos+1 символа, иначе будет бесколечный цикл
        ++cnt;
    }
    if (str[0] == '\n') // если первая строчка пустая - увелеличить cnt
        ++cnt;
    if (str[str.size() - 1] == '\n') // если последняя строчка пустая - увеличить cnt
        ++cnt;
    
    std::cout << cnt << std::endl;
    return 0;
}
// КОНЕЦ ФУНКЦИИ MAIN




--------------------
PM MAIL   Вверх
Kinch
Дата 25.2.2009, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.1.2009

Репутация: -1
Всего: -1



АГРОМНОЕ СПАСИБО))) встретил бы в реале напоил бы пивом))) smile  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.4298 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.