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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2011, 01:15   #1
G-58
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 11
По умолчанию Файл

Здравствуйте помогите с программой в файл записывается какие та иероглифы
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define N 5
int main()
{
char name[30],*s;
const char *nam;
FILE  *f;
int i,kol,size,k=0;
int n;
char buf[5];
const char *ch;
char chh[30];

//chh=' ';
if ((f=fopen("Fail", "w+b"))==NULL) {
puts("файл не создан  \n");
exit(1);
}
//Внесение строки символов в файл
fseek(f,0,SEEK_SET);
printf("Vvedite predlo}|{enie : ");
	gets(name);
	fwrite(&name,sizeof(name),1,f);

//Добавление в файл строку символов
	fseek(f,0,SEEK_END);
printf("Vvedite somvol\n");
	gets(name);
		fwrite(&name,sizeof(name),1,f);
	fclose(f);

f=fopen("Fail","r+b"); //Открытие двоичного файла
	if (f==NULL){
		printf("Error: file.bin not found ");
		return 1;
	}
//Определение количества записей в файле
	fseek(f,0,SEEK_END);
	size=ftell(f);
	kol=size/sizeof(name);
	rewind(f); //Перемотка файла на начало
//Вывод файла на экран
	printf("Vvedite  CH \n");
	scanf("%s",chh);
	nam=name;
	ch=chh;
	for(i=0;i<kol;i++)
	{
	for(i=0;i<kol;i++)
	{
	fread(&name,sizeof(name),1,f);
	puts(name);
	n=strlen(name);
	}
	for(i=0;i<n;i++)
	{
	if (nam[i]==ch[0])
	{k=k+1;}
	}	
	}		
	fclose(f);
   //ch=NULL;
printf("%i\n",k);
return 0;
}
в чём ошибка ?
G-58 вне форума Ответить с цитированием
Старый 12.01.2011, 01:18   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Вы пишете в бинарный файл. Это не иероглифы, а записанная информация в бинарном виде. А текстовый редактор отображает байты, записанные там, в виде символов
NiCola999 вне форума Ответить с цитированием
Старый 12.01.2011, 01:22   #3
G-58
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 11
По умолчанию

А как написать в текстовом файле ?
G-58 вне форума Ответить с цитированием
Старый 12.01.2011, 01:24   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
FILE *f = fopen("имя", "w"); // открываем файл на запись
fprintf(f, "%s", "qq"); // пишем строку
fclose(f);
NiCola999 вне форума Ответить с цитированием
Старый 12.01.2011, 01:39   #5
G-58
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от NiCola999 Посмотреть сообщение
Код:
FILE *f = fopen("имя", "w"); // открываем файл на запись
fprintf(f, "%s", "qq"); // пишем строку
fclose(f);
это пишем заместо
Код:
f=fopen("Fail","r+b"); //Открытие двоичного файла
	if (f==NULL){
		printf("Error: file.bin not found ");
		return 1;
G-58 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированный файл с натуральными числами. Числа, встречающиеся 1 раз переписать в другой файл [Паскаль] mifomen Помощь студентам 7 16.12.2010 22:00
WinInet загрузить файл во временной файл , использовать, потом удалить Человек_Борща Работа с сетью в Delphi 5 03.08.2010 13:46
C++. Прочитать файл и вывести в другой файл каждую N-ую строку Straiker Помощь студентам 3 15.12.2009 05:49
Ссылка на файл из текущей папки! Сбор инфы в один файл! mephist Microsoft Office Excel 11 10.07.2009 13:51
Дан файл, содержащий текст на русском языке.Составить в алфавитном порядке список слов в файл. JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2008 12:05