Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 11.03.2009, 22:57   #1
world12_tk
Форумчанин
 
Регистрация: 24.02.2009
Сообщений: 269
По умолчанию работа с файловым вводом выводом...

Добрый вечер.... Я написал программу, которая преобразовывает строчку по такому принципы: если строка начинается с цифры, то перед ней поставить левую круглую скобку, а вконец строки-правую круглую скобку...
Вот мой исходный код.....

Код:
#include <stdio.h>
#include <string.h>
#define N 1024
void main()
{
  FILE *fin, *fout;
  char in[N];
  char out[N];
  char buf[N];
  char outBuf[N+3];
  int start;
  int i;

  printf("введите название файла с которым вы бедите работать\n ");
  gets(in);
  printf("введите название файла в котором будет храниться наш результат ");
  gets(out);
  fin=fopen(in, "rt");
  fout=fopen(out, "wt");
  if(fin == NULL || fout == NULL){
    printf("’*такой файл не существует. Завершение работы программы.\n");
    scanf("ch");
    return;
  }

  printf("Программа начинает успешно обрабатывать файл\n");
  while(!feof(fin)){
    fgets(buf, N, fin);
    if(buf[0] >= '0' && buf[0] <= '9'){
	outBuf[0] = '(';
	memcpy(outBuf + 1, buf, strlen(buf));
	outBuf[strlen(buf)] = ')';
	outBuf[strlen(buf) + 1] = '\n';
	outBuf[strlen(buf) + 2] = 0;
	fputs(outBuf, fout);
    } else {
	fputs(buf, fout);
    }
 }
  printf("Прогрмма завершает свою работу успешно\n");
  printf(" Результаты работы вы найдете в файл\n",out);
  scanf("ch");
  fclose(fout);
  fclose(fin);
}
У меня возникли две проблемы. 1. Не могу реализовать код, который выводил бы результаты на экран. 2. Если строчка начинается с пробела, а потом идет цифра, то программа не ставит скобки....
Подскажите кто нибудь........
Заранее спасибо

Последний раз редактировалось MaTBeu; 12.03.2009 в 20:54.
world12_tk вне форума   Ответить с цитированием
Старый 13.03.2009, 17:31   #2
Svetlag
Пользователь
 
Аватар для Svetlag
 
Регистрация: 24.02.2009
Сообщений: 85
По умолчанию

1. вывод строки на экран printf("%s", outBuf);
2. такой код подойдет, если не нужно убирать пробелы в начале строки из входного файла
Код:
while(buf[index]==' ') index++;
if(buf[index] >= '0' && buf[index] <= '9'){
Svetlag вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемка с выводом Gladiator Общие вопросы Delphi 2 28.05.2008 19:51
Проблема с вводом лямбд, индексов и тд в Delphi bles Помощь студентам 6 22.05.2008 11:39
Задача с вводом матрицы на С Aero Помощь студентам 1 28.10.2007 15:50


05:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.