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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2013, 12:54   #1
Kr@ShAK
Пользователь
 
Регистрация: 17.12.2013
Сообщений: 11
Восклицание Работа с файлом Си

Надо структуру вывести в файл, проблема в том что без обозначения файла(если его убрать из кода) все работает как пытаюсь навязать программе работать с файлов выдает ошибку типа "преобразование int в float возможна потеря данных"
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
	struct raschet
	{
	float shag_x[51];
	float rez_f[51];
	float rez_g[51];
	float rez_y[51];
	} raschet;
	 struct raschet raschet_list[3];

	int i,m;
	float s,x,a,g,f,y,v,n;
	char n1[3],x1[500],x2[500],a1[500];
		printf("kol-vo raz");
		scanf("%s",&n1);
		n=atoi(n1);
		do
		{
		if(n<51)
		{
		printf("ENTER a: ");
		scanf("%s", &a1);
		a=atoi(a1);
		printf("Vvedite ogranic x\n");
		printf("x1 = ");
		scanf("%s",&x1);
		x=atoi(x1);
		printf("x2 = ");
		scanf("%s",&x2);
		m=atoi(x2);
		s=(m-x)/n;
				
		for(i=0;i<(n+1);i++)
				{
				v=15*a*a+49*a*x+24*x*x;
				 if (v!=0) 
				{
				 g=10*(-45*a*a+49*a*x+6*x*x)/v;
				 raschet_list[0].shag_x[i]=x;
				 raschet_list[1].rez_g[i]=g;
				}
				else
				 {
				raschet_list[0].shag_x[i]=x;
				raschet_list[1].rez_g[i]=0;
				 }	
				 x=x+s;
				}
			x=atoi(x1);	
			for(i=0;i<(n+1);i++)
				{				
				v=(72*a*a-91*a*x+24*x*x);
				 if ((v>=-1)&&(v<=1))
				{
					f=cos(v);
				raschet_list[2].rez_f[i]=f;
				}
				 else
			raschet_list[2].rez_f[i]=0;
			 x=x+s;
				}
			x=atoi(x1);
			for(i=0;i<(n+1);i++)
				{
				v=(8*a*a-14*a*x+5*x*x);
				 if ((v>=-1)&&(v<=1))
				{
					y=asin(v);
				raschet_list[3].rez_y[i]=y;
				} 
				 else			
				raschet_list[3].rez_y[i]=0;
				 x=x+s;
				}
			
	FILE *f1; 
		
if ((f1=fopen("F:\test.txt","w+")) == NULL)
{
  printf("Ошибка при открытии файла.\n");
  exit(1);
}
	else
	{	 
		for (i=0;i<(n+1);i++)		
		fprintf(f1, "%f \t %f \t %f \t %f \t \n\n ",raschet_list[0].shag_x[i],raschet_list[1].rez_g[i],raschet_list[2].rez_f[i],raschet_list[3].rez_y[i]);
	
	fclose(f1);
}
			n=0;
	}
else
	{	printf("error yslovia\1\n\n");
		printf("esli xotite prodolzit, vvedite kol-vo raz zanovo\nesli xotite vyiti vvedite 0\nkol-vo raz = ");
		scanf("%s",&n1);
		n=atoi(n1);	
	}
		} 
while(n!=0); 
return 0; 
}
Kr@ShAK вне форума Ответить с цитированием
Старый 20.12.2013, 14:34   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

1. Warning это не ошибка, но на него нужно обращать внимание.
2. На какую строчку-то ругается?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 20.12.2013, 15:15   #3
Kr@ShAK
Пользователь
 
Регистрация: 17.12.2013
Сообщений: 11
По умолчанию

Ругается на все строки где перевожу из строки в число(если убрать ввод в файл то ни на что не ругается), но по сути пропустить можно, но в файл он ничего не записывает=(
Kr@ShAK вне форума Ответить с цитированием
Старый 20.12.2013, 15:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Правильно ругается. В нее нужно указатель передавать:
Код:
a=atoi(&a1);
И так со всеми.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.12.2013, 15:58   #5
Kr@ShAK
Пользователь
 
Регистрация: 17.12.2013
Сообщений: 11
По умолчанию

Так то я записываю в данную переменную раньше поэтому причина не в этом.Да и ведь вот так все работает идеально:
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main(void)
{
	struct raschet
	{
	float shag_x[51];
	float rez_f[51];
	float rez_g[51];
	float rez_y[51];
	} raschet;
	 struct raschet raschet_list[3];

	int i,m;
	float s,x,a,g,f,y,v,n;
	char n1[3],x1[500],x2[500],a1[500];
		printf("kol-vo raz");
		scanf("%s",&n1);
		n=atoi(n1);
		do
		{
		if(n<51)
		{
		printf("ENTER a: ");
		scanf("%s", &a1);
		a=atoi(a1);
		printf("Vvedite ogranic x\n");
		printf("x1 = ");
		scanf("%s",&x1);
		x=atoi(x1);
		printf("x2 = ");
		scanf("%s",&x2);
		m=atoi(x2);
		s=(m-x)/n;
				
		for(i=0;i<(n+1);i++)
				{
				v=15*a*a+49*a*x+24*x*x;
				 if (v!=0) 
				{
				 g=10*(-45*a*a+49*a*x+6*x*x)/v;
				 raschet_list[0].shag_x[i]=x;
				 raschet_list[1].rez_g[i]=g;
				}
				else
				 {
				raschet_list[0].shag_x[i]=x;
				raschet_list[1].rez_g[i]=0;
				 }	
				 x=x+s;
				}
			x=atoi(x1);	
			for(i=0;i<(n+1);i++)
				{				
				v=(72*a*a-91*a*x+24*x*x);
				 if ((v>=-1)&&(v<=1))
				{
					f=cos(v);
				raschet_list[2].rez_f[i]=f;
				}
				 else
			raschet_list[2].rez_f[i]=0;
			 x=x+s;
				}
			x=atoi(x1);
			for(i=0;i<(n+1);i++)
				{
				v=(8*a*a-14*a*x+5*x*x);
				 if ((v>=-1)&&(v<=1))
				{
					y=asin(v);
				raschet_list[3].rez_y[i]=y;
				} 
				 else			
				raschet_list[3].rez_y[i]=0;
				 x=x+s;
				}
	
			n=0;
	}
else
	{	printf("error yslovia\1\n\n");
		printf("esli xotite prodolzit, vvedite kol-vo raz zanovo\nesli xotite vyiti vvedite 0\nkol-vo raz = ");
		scanf("%s",&n1);
		n=atoi(n1);	
	}
		} 
while(n!=0); 
return 0; 
}
а изменяется по сути вот этот элемент
Код:
FILE *f1; 
		
if ((f1=fopen("F:\test.txt","w+")) == NULL)
{
  printf("Ошибка при открытии файла.\n");
  exit(1);
}
	else
	{	 
		for (i=0;i<(n+1);i++)		
		fprintf(f1, "%f \t %f \t %f \t %f \t \n\n ",raschet_list[0].shag_x[i],raschet_list[1].rez_g[i],raschet_list[2].rez_f[i],raschet_list[3].rez_y[i]);
	
	fclose(f1);
}
скорее всего я что то не так делаю с файлом вопрос что?
Kr@ShAK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файлом на c# alexander1994 C# (си шарп) 1 24.10.2012 19:57
Работа с PE-файлом Sparky Помощь студентам 2 19.10.2012 17:37
работа с файлом AET Общие вопросы Delphi 7 30.06.2011 23:38
Работа с файлом! Kami-sama Visual C++ 0 07.05.2011 20:48
работа с файлом scudo Общие вопросы Delphi 4 12.11.2009 22:52