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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2011, 19:47   #1
AlexSanify
 
Аватар для AlexSanify
 
Регистрация: 17.08.2011
Сообщений: 7
Восклицание Файлы и работа с ними

Пытаюсь написать программу записывающую в файл строку "123123а"
Но вместо этого программа записывает строку "1Н2Н3Н1Н2Н3НaН"
В чем причина?
Вот код:
Код:
#include <iostream>
#include <stdio.h>
#define SIZE 8
using namespace std;

const char ch [SIZE] = "123123a";
FILE *f;
char c [SIZE];

int main()
{
	int i = 0;
	f = fopen("test.data", "w+");
	remove("test.data");
	do {
		putc(ch [i], f);
		if (c[i]!=EOF){
			c [i] = getc(f);
			cout << c [i];
		}
		i++;
	} while (i != SIZE);
	system("pause");
	return 0;
}
AlexSanify вне форума Ответить с цитированием
Старый 12.10.2011, 21:07   #2
_Alerter_
Пользователь
 
Регистрация: 25.05.2011
Сообщений: 89
По умолчанию

При записи в файл символа указатель на текущий сивол файла смещается вправо, когда ты читаешь символ, указатель опять же смещается, поэтому получается, что между символами, которые должны быть записаны в файл, будет находиться один лишний. Убери вот эту часть кода:
Код:
if (c[i]!=EOF){
	c [i] = getc(f);
	cout << c [i];
}
_Alerter_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Маршруты и работа с ними. С++ CAHEK_Haus Помощь студентам 4 29.05.2011 14:49
Автофильтры и работа с ними Lego Microsoft Office Excel 16 18.10.2010 23:48
Классы и работа с ними Airou Общие вопросы C/C++ 1 16.10.2010 04:53
Файлы *.blb что это такое и как с ними работать brato4karik Общие вопросы Delphi 1 15.04.2010 17:10
Создание файлов и работа с ними... Olka... Общие вопросы C/C++ 12 02.04.2010 23:30