crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

9 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> вопросы по связанные с "читай мат.часть"
TiiL
  опции профиля:
сообщение 7.10.2011, 9:47
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 124
Регистрация: 8.6.2011
Пользователь №: 2727

Спасибо сказали: 0 раз(а)




Репутация:   0  


программа написанная в DOC:

в начале кода всякие #define объявления

int    main(int argc , char** argv[]  ) // 1-ый - вариант
{
//int       argc;
//char    *argv; //2-ой - вариант


вопрос первый к выше написанному коду, как правильно записывать по 1-ому или 2-ому?

продолжение кода
...
идут объявление переменных и интерсует переменная term
...
int term;
...
проходят некие операции программы
...
term = KF_Next


KF_Next объявленно в одной из нестандартных библиотек:

 /*    перемещение по полям   */
...
#define KF_next (-132)
...

прочитал "мат часть":
Цитата
Директива #define позволяет задать имя для некоторого фрагмента текста, такое обозначение называется макроопределением или макросом. Формат записи: #define NAME Текст замены. Препроцессор просматривает текст программы и заменяет NAME текстом замены. Например: #define COUNT 100 в тексте программы все имена COUNT будут заменяться на 100.


-132 - это число которое передаеться в term, тогда причем здесь перемещение по полям?

ребята что может означать это число, ничего не понимаю.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 7.10.2011, 11:58
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


1. для main однозначно char *argv[]. тут не вопрос "как записывать", а определение main функции, так что без вариантов. это массив указателей на строки. впрочем, можно записать это как char ** argv. однако, обычно такая запись означает динамическое размещение, а в данном случае его нет. поэтому просто красивее писать как массив, ибо он имеет фиксированную длину.

2. да, -132 будет присвоено данной переменной. что означают какие-то "поля" - понятия не имею, надо разбираться в самом коде. к #define это никакого отношения не имеет.

Сообщение отредактировал Iron Bug - 7.10.2011, 12:04
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
TiiL
  опции профиля:
сообщение 7.10.2011, 14:45
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 124
Регистрация: 8.6.2011
Пользователь №: 2727

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо что откликнулся.

другой вопрос в програмном коде записано вот так:
if ( F_open( argv [0], "tpp.flb") != 0)
    return fputs("cannot open form library 'tpp.flb'\n", stderr);


пробую заменить на
if ( std::ofstream( argv [0], "tpp.flb") != 0)
    return fputs("cannot open form library 'tpp.flb'\n", stderr);


понимаю что ошибка, но как правильно?

или надо это делать через:

is_open - проверка, открыт ли файл

Сообщение отредактировал TiiL - 7.10.2011, 15:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 7.10.2011, 15:19
Сообщение #4


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


в данном случае ofstream - это конструктор. и он никогда ничего не возвращает.
правильно будет
ofstream ofs;
ofs.open(filename, mode);
if(ofs.is_open()) { ... }


но у ofstream режим (mode) открытия файла никак не может быть "tpp.flb". там вполне конкретные константы или их комбинация. и F_open не должен писать в массив аргументов argv (вообще нехорошо туда что-либо писать, да и незачем, по сути).
читать документацию на F_open и на ofstream::open.

Сообщение отредактировал Iron Bug - 7.10.2011, 15:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
TiiL
  опции профиля:
сообщение 7.10.2011, 15:28
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 124
Регистрация: 8.6.2011
Пользователь №: 2727

Спасибо сказали: 0 раз(а)




Репутация:   0  


Iron Bug, Благодарю)))) вопросы еще будут, извените за мою тупость)
#include <fstream>
ofstream inputStream;


tpp_pr.cpp:122: error: 'ifstream' was not declared in this scope
что за глупость?

Сообщение отредактировал TiiL - 7.10.2011, 15:43
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 7.10.2011, 15:36
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


ну вот сюда их все и пиши. чтобы темы от начинающих не плодились. а то обозревать кучу разных тем с вопросами по основам программирования на С++ очень проблематично :)
да, и прежде чем писать код - нужно читать документацию. а лучше начать с чтения книжки Страуструпа, чтобы упорядочить общие познания о языке. ну и в сети есть море примеров использования всякого всего. например, есть замечательный справочный ресурс по плюсам:
http://www.cplusplus.com/reference/
там есть поиск и можно найти и описания, и примеры.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
TiiL
  опции профиля:
сообщение 7.10.2011, 15:46
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 124
Регистрация: 8.6.2011
Пользователь №: 2727

Спасибо сказали: 0 раз(а)




Репутация:   0  


Спасибо за ссылочку будет полезной :rolleyes:
Цитата
замечательный справочный ресурс по плюсам:
http://www.cplusplus.com/reference/
там есть поиск и можно найти и описания, и примеры.

пользую вот этим
http://www.cppreference.com/wiki/ru/io/open
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.10.2011, 18:04
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(TiiL @ 7.10.2011, 18:28) *
tpp_pr.cpp:122: error: 'ifstream' was not declared in this scope
что за глупость?
надо заглянуть в файл fstream и посмотреть какое отношение имеет ifstream к ofstream
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 7.10.2011, 18:15
Сообщение #9


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата
программа написанная в DOC:

а что это, если не секрет ? )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
TiiL
  опции профиля:
сообщение 10.10.2011, 9:56
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 124
Регистрация: 8.6.2011
Пользователь №: 2727

Спасибо сказали: 0 раз(а)




Репутация:   0  


Алексей1153,
Цитата
Цитата

программа написанная в DOC:

а что это, если не секрет ? )

Программа с экрана получала имя файла, в который записывает результаты расчета, и коэф-нт для этого расчета.

Litkevich Yuriy,

пробовал писать и ifstream и ofstream, ошибка таже самая, хотя в инете в примере

open

Синтаксис:
#include <fstream>
void fstream::open(const char *filename, openmode mode = default_mode);

Функция open() используется с файловыми потоками. Она открывает файл и связывает его с текущим потоком. Параметр mode по умолчанию имеет значение ios::in для потоков ввода (ifstream), ios::out для потоков вывода (ofstream) и ios::in|ios::out для файловых потоков (fstream). Если не удается вызов open(), то поток переходит в состояние non-good, которое может быть проверено.

Пример:
ifstream inputStream;
inputStream.open("file.txt");

if( !inputStream ) {
cerr << "Error opening input stream" << endl;
}
// или
if ( inputStream ) {
// использвование inputStream
}
всё должно работать, в чем же моя проблема((((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

9 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 25.4.2024, 3:14