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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2011, 18:12   #1
Alpha Centauri
Пользователь
 
Аватар для Alpha Centauri
 
Регистрация: 12.04.2011
Сообщений: 16
Сообщение Работа с файлами. С.

Имеется задача:
Создать текстовый файл ft, содержащий n строк с текстом. Прочитать все строки и вывести в бинарный файл fb значения длин всех строк.
Я написала такую программу:
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
void main()
{
FILE *ft,*fb;
const n=20;
struct text
{
char str[100];
}a[n];
int k,i,j,c;
float d[100];
clrscr();
printf("Enter the number string: ");
scanf("%d",&i);
for(j=0;j<i;j++)
{
scanf("%s",&a[j].str);
}
ft=fopen("C:\\Users\\Students\\604\\ft.txt","wt");
fb=fopen("C:\\Users\\Students\\604\\fb.dat","wb");
if((ft=fopen("C:\\Users\\Students\\604\\ft.txt","wt"))==NULL)
{
fprintf(stdout,"Error opening file ft");
exit(1);
}
if((fb=fopen("C:\\Users\\Students\\604\\fb.dat","wb"))==NULL)
{
fprintf(stdout,"Error opening file fb");
exit(1);
}
for(j=0;j<i;j++)
{
fprintf (ft, "%d",a[j].str);
}
for(j=0;j<i;j++)
{
c=strlen(a[j].str);
printf("c=%d\n",c);
fwrite(&c,sizeof(int),1,fb);
}
fclose(ft);
fclose(fb);
getch();
}
проблема:
Скажем так, она формально работает,т.е. на экран выводит все верно. а в файл записывает какую-то белиберду. и вместо текстового файла создает бинарный. В чем причина не пойму. подскажите пожалуйста)
Не ошибается только тот, кто ничего не делает

Последний раз редактировалось Alpha Centauri; 12.04.2011 в 18:20.
Alpha Centauri вне форума Ответить с цитированием
Старый 12.04.2011, 20:02   #2
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Сейчас попытаюсь вам помочь))
Диман56 вне форума Ответить с цитированием
Старый 12.04.2011, 20:07   #3
Alpha Centauri
Пользователь
 
Аватар для Alpha Centauri
 
Регистрация: 12.04.2011
Сообщений: 16
По умолчанию

Буду рада)
Не ошибается только тот, кто ничего не делает
Alpha Centauri вне форума Ответить с цитированием
Старый 12.04.2011, 20:19   #4
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Как вы сами говорили:все гениальное-просто. Вот код. Вроде работает))
Код:
#include <stdio.h>
#include <conio.h>
#include <string.h>
main()
{
int n,len;
char h[40];
FILE *fin, *fout;
fin=fopen("c:\\data\\ft.txt", "r");
fout=fopen("c:\\data\\fb.dat","a");
while(NULL!=fgets(h,80,fin))
{
fscanf(fin, "%s", h);
len=strlen(h);
fprintf(fout, "%d\n", len);
}
fclose(fin);
fclose(fout);
getch();
}
Диман56 вне форума Ответить с цитированием
Старый 12.04.2011, 20:20   #5
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Но тут есть баг-надо первую строку в файле ft.txt делать пустой))
Диман56 вне форума Ответить с цитированием
Старый 12.04.2011, 20:26   #6
Alpha Centauri
Пользователь
 
Аватар для Alpha Centauri
 
Регистрация: 12.04.2011
Сообщений: 16
По умолчанию

спасибо) сейчас попробую)
Не ошибается только тот, кто ничего не делает
Alpha Centauri вне форума Ответить с цитированием
Старый 12.04.2011, 20:29   #7
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Да не за что))Обращайтесь)
Диман56 вне форума Ответить с цитированием
Старый 12.04.2011, 20:39   #8
Диман56
Форумчанин
 
Регистрация: 02.11.2010
Сообщений: 103
По умолчанию

Ну как, получилось?
Диман56 вне форума Ответить с цитированием
Старый 12.04.2011, 20:40   #9
Alpha Centauri
Пользователь
 
Аватар для Alpha Centauri
 
Регистрация: 12.04.2011
Сообщений: 16
По умолчанию

нет. сразу же все закрывается. буду биться дальше)
Не ошибается только тот, кто ничего не делает
Alpha Centauri вне форума Ответить с цитированием
Старый 12.04.2011, 21:02   #10
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

fscanf(fin, "%s", h);
убрать
onewho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлами 4thWing Общие вопросы C/C++ 5 12.04.2010 01:04
Работа с файлами в С серг Общие вопросы C/C++ 9 18.02.2010 19:21
Работа с файлами good-spamer Помощь студентам 2 17.02.2010 16:38
Работа с файлами на С++ nec117 Общие вопросы C/C++ 4 24.02.2009 23:18
Работа с файлами Cpluser Общие вопросы C/C++ 2 16.02.2009 23:22