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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2010, 23:03   #1
NICmito
 
Регистрация: 13.12.2009
Сообщений: 9
По умолчанию C++ простейшая програма ввод/вывод

моё задание написать програму каторая из файла .СРР(с++) удалит коментарии как строчные(//) так и много строчные.(/* */)

моя проблема:

немогу понять где ошибся всё перелопатил но как удалить эти два символа // незнаю, так то коментарий успешно удаляеться остаёться после него лишь // и хоть убейся не выходит.

мой код
Код:
// test.cpp : Defines the entry point for the console application.
#include <stdlib.h>
#include "stdafx.h"
#include <stdio.h>

void output(FILE *in , FILE *out) //перегон информации из файла в файл или консоль.
{
	while(fgetc(in)!=EOF)
	{
		fseek(in,-1,SEEK_CUR);
		fputc(fgetc(in),out);
	}
	fseek(in,0,SEEK_SET);
}

void stringcom(FILE *in, FILE *out) //перегоняет информацию исключаяя строчные комментарии.
{
	int tmp=0;
	while(fgetc(in)!=EOF)
	{
		fseek(in,-1,SEEK_CUR);
		fputc(fgetc(in),out);
		fseek(in,-1,SEEK_CUR);
		if(fgetc(in)==0x002F)
		{ 
			tmp++;
		};
		if(tmp==2)
		{
			while((fgetc(in)!=0x000A) & (fgetc(in)!=0x000D))
			{
				fgetc(in);
			}
			tmp=0;
		}

	}
	fseek(in,0,SEEK_SET);
}

int main(int argc, char argv[])
{
  FILE *temp;
  temp=tmpfile();
  if(temp != NULL)
  {
	FILE * pFile;
	pFile = fopen ("C:\\in.cpp", "r+b");
	if (pFile!=NULL)
	{
		output(pFile,stdout);
		stringcom(pFile,stdout);
		//output(temp,stdout);

	}	
	else
	{
		printf("Program eror 2:unenable to open file.\n");
	}
	fclose (pFile);
  }
  else
  {
	  printf("Program eror 1:unenable to create/open temp file.\n");
  }
	
  return 0;
}

проблема гдето в функции stringcom. помогите пожалуйста. ткните носом так сказать. заранее спасибо.
думаю что с много строковоми потом сам разберусь и с проверкой аргументов тоже.
NICmito вне форума Ответить с цитированием
Старый 23.05.2010, 23:09   #2
NICmito
 
Регистрация: 13.12.2009
Сообщений: 9
По умолчанию

пример прогона программы
до
Код:
// test.cpp : Defines the entry point for the console application.
#include <stdlib.h>
#include "stdafx.h"
#include <stdio.h>

int main(int argc, char argv[])
{
  char buffer[2000];
  FILE * pFile;
  pFile = fopen ("C:\\Documents and Settings\\Admin\\Мои документы\\Visual Studio 2010\\Projects\\test\\test\\test.cpp", "r+b");
  if (pFile!=NULL)
  {
	while(fgetc(pFile)!=EOF)
	{
//	fseek(pFile,-1,SEEK_CUR);
	fputc(fgetc(pFile),stdout);
	}
	printf("\n\n\n\n");
    fclose (pFile);
//ajdsjkgskjklrkergjkerg
  }
  else printf( "error");
	return 0;
}
после
Код:
//                                                          <=== проблема тут
#include <stdlib.h>
#include "stdafx.h"
#include <stdio.h>

int main(int argc, char argv[])
{
  char buffer[2000];
  FILE * pFile;
  pFile = fopen ("C:\\Documents and Settings\\Admin\\Мои документы\\Visual Studio 2010\\Projects\\test\\test\\test.cpp", "r+b");
  if (pFile!=NULL)
  {
	while(fgetc(pFile)!=EOF)
	{
//fputc(fgetc(pFile),stdout);                              <=== тут
	}
	printf("\n\n\n\n");
    fclose (pFile);
//                                                                  <=== и тут
  }
  else printf( "error");
	return 0;
}
NICmito вне форума Ответить с цитированием
Старый 24.05.2010, 00:33   #3
NICmito
 
Регистрация: 13.12.2009
Сообщений: 9
По умолчанию

Ура сам смог))) и много строчные сделал. вот тока тоже криво теперь не знаю как убрать пустую строку теперь вместо // просто пустая строка остаёться.

с много строчными так же пустая строка 1 остаёться.
NICmito вне форума Ответить с цитированием
Старый 24.05.2010, 01:16   #4
NICmito
 
Регистрация: 13.12.2009
Сообщений: 9
По умолчанию

тут была проблема с каторой я тоже разобрался. извените за засорение форума.

Последний раз редактировалось NICmito; 24.05.2010 в 01:40.
NICmito вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Ввод - вывод AquaticSoul Помощь студентам 0 18.04.2010 20:02
Ввод-Вывод Joker_35815 Помощь студентам 2 30.03.2010 19:22
Ввод-вывод Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 04.10.2009 13:15
Ввод-вывод в С++ StudentPolitech Помощь студентам 0 04.06.2009 20:07
Ввод и вывод Mihael-Vlz Паскаль, Turbo Pascal, PascalABC.NET 3 19.01.2009 18:00