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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 04.04.2009, 23:12   #1
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию Что не так?

написал программку, заменяющая в файлике все буквы А на B(в учебных целях), скомпилировал, запустил... Вроде сработала, однако выходные данные оказались неудовлетворительными..
в исходнике было написано следующее:
A A A
AAA
AA A A
вывело:
B B B
--------множество пробелов ----- BBB
столько же пробелов---------------- BB B B

Так и не понял, откуда взялись пробелы... ПОдскажите плз, заранее спасибо и прошу не бить за нубость((

код програмки:

Код:
#include <stdio.h>
int main (int agrc, char*argv[])
{
	FILE* input=fopen("input.txt", "r") ;
	FILE* output=fopen("output.txt", "w+") ;
	int i ;
	char l[100] ;
	while (fgets(l, 100, input)!=NULL){
	for (i = 0; i < 100; i++) {
	if (l[i]=='A') {l[i]='B' ;}
	fprintf(output, "%c", l[i]) ;
	}
	}
	fclose(input) ;
	fclose(output) ;
	return (0);

}

Последний раз редактировалось MaTBeu; 06.04.2009 в 18:32.
Alexcomeback вне форума
Старый 04.04.2009, 23:20   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Просто идите по файлу посимвольно.
Код:
#include <stdio.h>
int main (int agrc, char*argv[])
{
FILE* input=fopen("input.txt", "r") ;
FILE* output=fopen("output.txt", "w+") ;
char c;

while(!feof(input))
 {
  c = fgetc(input);
  if(feof(input)) break;
  if(c=='A') c='B';
  fputc(c,output);
 }
fclose(input) ;
fclose(output) ;
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 04.04.2009, 23:30   #3
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию

м..Как бэ объяснить, посимвольную проверку я организовывал, с этим всё понятно, суть программки была именно в том чтобы загружать не по одному символу а по строке.. По-моему это даст преимущество в скорости работы программы. Или не даст..
Alexcomeback вне форума
Старый 04.04.2009, 23:39   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну если нужно читать строки, то так:
Код:
#include <stdio.h>
int main (int agrc, char*argv[])
{
FILE* input=fopen("input.txt", "r") ;
FILE* output=fopen("output.txt", "w+") ;
char c[100];

while(fgets(c,100,input)!=NULL)
 {
  for(int i=0;i<100;i++)
   if(c[i]=='A') c[i]='B';
  fputs(c,output);
 }
fclose(input) ;
fclose(output) ;
return 0;
}
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 04.04.2009, 23:41   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Читаете по 100 символов, так и пишите по 100 символов:
Код:
...
	while (fgets(l, 100, input)!=NULL){
		for (i = 0; i < 100; i++) {
			if (l[i]=='A') {l[i]='B' ;}
		}
		fprintf(output, "%s", l) ;
	}
...
pu4koff вне форума
Старый 07.04.2009, 22:31   #6
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию

pu4koff
Ну я вроде точно также и писал (см. код выше). Только у меня при выводе возникают пробелы (откуда они - без понятия)... Может подглюкивает малец..
Alexcomeback вне форума
Старый 07.04.2009, 22:41   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Alexcomeback Посмотреть сообщение
pu4koff
Ну я вроде точно также и писал (см. код выше). Только у меня при выводе возникают пробелы (откуда они - без понятия)... Может подглюкивает малец..
Не так же. Вы пишите в файл посимвольно, у меня записывается сразу весь блок из 100 символов. Почему посимвольная запись неправильно работает я честно не знаю, вероятно на то есть свои причины
pu4koff вне форума
Старый 07.04.2009, 23:10   #8
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Alexcomeback Посмотреть сообщение
код програмки:

Код:
#include <stdio.h>
int main (int agrc, char*argv[])
{
	FILE* input=fopen("input.txt", "r") ;
	FILE* output=fopen("output.txt", "w+") ;
	int i ;
	char l[100] ;
	while (fgets(l, 100, input)!=NULL){
	for (i = 0; i < 100; i++) {
	if (l[i]=='A') {l[i]='B' ;}
	fprintf(output, "%c", l[i]) ;
	}
	}
	fclose(input) ;
	fclose(output) ;
	return (0);

}

Или я под ночь совсем не соображаю
Alexcomeback вне форума
Старый 07.04.2009, 23:13   #9
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию

А всё, понял...
В выводе -%s а у меня %c стояло, переправил, пробелы исчезли. Но ведь посимвольно и вправду непонятно выводил...
Alexcomeback вне форума
Старый 07.04.2009, 23:14   #10
Alexcomeback
Пользователь
 
Регистрация: 03.04.2009
Сообщений: 59
По умолчанию

Благодарю за помощь)
Alexcomeback вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
else ,что сним не так? addy100 Общие вопросы C/C++ 6 04.02.2009 11:17
Что не так? Viento Microsoft Office Excel 3 30.01.2009 14:38
Подскажите что не так... SynonymMixer Работа с сетью в Delphi 10 26.01.2009 23:49
Что то не так с переменными.. adwaer Помощь студентам 1 19.06.2008 08:42
Что-то не так Radiofuck Помощь студентам 2 16.01.2007 22:06