Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 08:28   #1
inc
Пользователь
 
Аватар для inc
 
Регистрация: 23.05.2011
Сообщений: 14
По умолчанию Работа с файлами и строками

помогите с заданием

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

Код:
#include <iostream>
#include <fstream>

using namespace std;



bool Test (char *str)

{
  *str == '"';

    return true;
  return false;
}

int main (void)
{
  FILE *pf;        // указатель на файл с текстом
  char buffer[200]; // буфер для хранения считанной строки

  pf = fopen ("data.txt", "r"); // открываем файл для чтения
  if (!pf)                      // если не удалость открыть
  {                             // сообщаем об ошибке
    printf ("No file");

    return 0;
  }
  while (!feof (pf)) // цикл до конца файла
  {

    fscanf (pf, "%s", buffer); // считываем очередное слово

    (Test (buffer)) printf ("%s ", buffer));

  }
  fclose (pf); // закрываем файл

  cin.get();
}
inc вне форума Ответить с цитированием
Старый 13.06.2011, 11:30   #2
Jaguar83
Профессионал
Пользователь
 
Аватар для Jaguar83
 
Регистрация: 25.05.2011
Сообщений: 91
По умолчанию

Ваша программа у меня вообще не скомпилилась, да и логику ее, честно говоря, не совсем понял.
Если использовать функции С, то предложу следующее решение
Код:
#include <stdio.h>
#include <string.h>

char * Test (const char *str)
{
	char symbol='"';
	return strchr(str,symbol);
}

void main (void)
{
	FILE *pf;        
	char buffer[255]; 
	char * findstr = new char[255];
	char * begin;
	char * end;
	int n;

	pf = fopen("c:\\data.txt", "r"); 
	if (!pf)                      
	{                             
		printf ("No file \n");
		return;
	}
	while (!feof(pf)) 
	{
		fscanf(pf, "%[^\n]", buffer);
		begin = Test(buffer);
		if (begin != 0) 
			end = Test(++begin);
		if ((begin != 0) && (end != 0)) 
		{
			n = strlen(begin)-strlen(end);
			strncpy(findstr,begin,n);
			findstr[n] = 0;
			printf ("%s ", findstr);
		}
	}
	printf("\n");
}
Помог? Будь человеком - жми на весы слева!

Последний раз редактировалось Jaguar83; 13.06.2011 в 11:33.
Jaguar83 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами и строками. inc Помощь студентам 3 26.05.2011 06:15
работа со строками и файлами kartasskiy Паскаль, Turbo Pascal, PascalABC.NET 0 21.05.2011 11:50
Работа со строками и файлами, С++ pakistan Помощь студентам 0 28.04.2009 23:39
Работа со строками и файлами DJ BlackWolF Общие вопросы C/C++ 6 05.12.2008 01:11
Работа с файлами и строками. mituhin Общие вопросы C/C++ 1 06.12.2007 12:53