IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Подключение файла с исх. данными в C/C++
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Нужен совет в следующем:
Есть исходные данные таблица содержит значение x и y. Данные значения будут использоваться при вычислении. Как организовать их хранение в отдельном файле (чтоб файл можно было редактировать по необходимости, менять значения например с помощью блокнота), ппотом использовать в программе, для считывания. НУжен совет по использованию финкций считывания данных. Посмотрел в доках предположил что можно использовать fread() И fwrite(), но интересно ведь данные функции считывают по размерно, возможно в данном случае нормально в удобном виде распологать данные и их считывание?

Сообщение отредактировано: Account -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Лучше храни обычный текстовый файл + читай его через fscanf (для C) или через ifstream (для С++)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 5.07.2009 12:19) *

Лучше храни обычный текстовый файл + читай его через fscanf (для C) или через ifstream (для С++)


А возможно ли в нем храние вот в атком виде

Код
  
X       |     Y    |
0.23       1.50
-0.32      -1.72
....................

Между занчениями например табуляция
Возможно ли тогда считывание в таком виде каждого отдельного значени, и отрицательного тоже
в таком случе прочитает если написать вот так

double x,y;
fscanf(fp, "%g%g",&x,&y);
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Проверь:
#include <conio.h>
#include <stdio.h>

int main()
{
double x, y;
char s[64];
FILE *f = fopen("dat.txt", "rt");
fgets(s, 63, f); // пропускаем заголовок файла

while(!feof(f)) {
fscanf(f, "%lg %lg\n", &x, &y);
printf("X = %lg; Y = %lg\n", x, y);
}
fclose(f);
return 0;
}
,

файл: Прикрепленный файл  dat.txt ( 30 байт ) Кол-во скачиваний: 491
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


volvo, все работает, спасибо)

а вот в команде
fscanf(f, "%lg %lg\n", &x, &y);


параметр %lg для считывания я так понял типа long double? И это наверное было расширено в c++ так как у меня вот в книге по С автр Г. Шилд указаны только %a, %e, %f, %g для работы с числами с плавующей точкой?

Сообщение отредактировано: Account -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
параметр %lg для считывания я так понял типа long double?
Нет, это параметр g в scanf-е обозначает float, а у тебя double, это длинный float, поэтому надо добавить спецификатор L...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 5.07.2009 13:09) *

Нет, это параметр g в scanf-е обозначает float, а у тебя double, это длинный float, поэтому надо добавить спецификатор L...


Все ясно, сапсибо)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


volvo, а не подскажешь вот что, как происходит раздельная компиляция блоков программы и сборка в C/C++, хочу сделать основной файл программы а остальные функции вынести в отдельные файлы чтоб можно было их компилить и проверять отдельно.

например, есть у меня основная функция

Основной файл prog:

#include <stdio>
#include <iostream>
#include <fc> /* это я просто предположил*/

int func() ; /* и это*/


int main()
{

func();
return 0;
}



И файл с функцияей fc:

#include <stdio>
#include <iostream>

int func()
{
cout<<"Hello World!!"
return 0;
}


Сообщение отредактировано: Account -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Нет. Include-ить желательно только заголовочные H-файлы, реализацию в виде CPP надо подключать к проекту: "Project->Add files...", и потом собирать проект. Линкер сам найдет и подключит нужные объектные файлы.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


Цитата(volvo @ 5.07.2009 14:39) *

Нет. Include-ить желательно только заголовочные H-файлы, реализацию в виде CPP надо подключать к проекту: "Project->Add files...", и потом собирать проект. Линкер сам найдет и подключит нужные объектные файлы.


А если я просто создавал вот через New-->Empty file, два разных файла, а не проект, как их связать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Создать проект и связать.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Бывалый
***

Группа: Пользователи
Сообщений: 212
Пол: Мужской

Репутация: -  0  +


После недолгой эксперементализации, чтоб не придумывать велосипед, так и было сделано, создан проект и добавлен файл))))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.04.2024 2:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name