Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
#1

вопросы связанные с темой "читай мат.часть" - C++

11.10.2011, 09:09. Просмотров 2350. Ответов 28
Метки нет (Все метки)

Здравствуйте, имется код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#define     fname  argv[1]         /* Archive file name   */
#define     sname  argv[2]         /* Specimen's name     */
int    main(int argc, char **argv)
{
    //int       argc;
    //char    *argv;
 
  //short item_sz ;
  int   fd ;
  int           i;
  char          *s;
  struct ifl    itf [] =
       {{"GGC", 0}, {"SGC", 0}, {"HEADL", 0} };
 double range;
 int flage = 0, sort_flage;
 char  string[256];
 int   term;
 float x;
 
  if ( argc < 2 )
  {
   fputs ( "bad spawn of gen processing", stderr );
    return 1;
    }
 
 
///* read items */
 
  int item_sz = sizeof ( itf ) / sizeof ( itf [0] );  /* Qty of items needed */
 
  if ( (fd = rd_open( fname)) < 0                /* get archive */
          || rd_fil(fd, &hdr)                   /* read file header */
          || rd_spec( fd, sname, &spec)          /* find&read specimen header */
     )
    return FATAL;
}
выдает вот такую ошибку:

E:\alexprojects\TPP/tpp_pr.cpp:91: undefined reference to `rd_open(char*)'

не пойму как решить, помогите.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 09:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вопросы связанные с темой "читай мат.часть" (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Курсовой проект с темой "Локальные и глобальные переменные. Правила видимости переменных в С++" - C++
Суть програмы заключается в том чтобы показать суть и разницу локальных и глобальных переменных в с++ и правила видимости в с++ также можно...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

28
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
17.10.2011, 17:47 #16
Цитата Сообщение от TiiL Посмотреть сообщение
dialog.cpp: In member function 'void TPP::on_GoButton_clicked(int, char**)':
dialog.cpp:119: error: return-statement with a value, in function returning 'void'
Функция, объявленная, как void, не может возвращать значения, а у Вас:

Цитата Сообщение от TiiL Посмотреть сообщение
C++
1
2
3
if ( argc < 2 ){
//...
return 1;
Вот и не компилируется...
1
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
18.10.2011, 09:25  [ТС] #17
easybudda, Спасибо за неравнодушие. Проблему решил, просто перенеся данную часть кода под main(int argc, char *argv)

Задача такая:
из некого большого приложения через консоль запускается моя программа.
то есть в консоль записывается "имя.exe" "архив данных".sar и "название образца, лежащего в этом архиве".
я так понима в argc помещается "имя.exe" - c этим всё понятно.
в argv[1] argv[2] соотвественно архив и имя образца. Вопрос как argv[1] argv[2] поместить в fname и sname используемые под функции, находящейся в том же самом проекте, но в не в main.cpp, а в dialog.cpp? буду очень признательно, а пока читаю мат. часть. моджет что нарою.
0
rrrFer
Заблокирован
18.10.2011, 09:31 #18
Вопрос как argv[1] argv[2] поместить в fname и sname используемые под функции, находящейся в том же самом проекте, но в не в main.cpp, а в dialog.cpp?
очевидно, передать argv и argc в качестве параметров функции ил dialog.cpp
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
18.10.2011, 09:42  [ТС] #19
rrrFer, у меня эти параметры работают под функции void on_GoButton_clicked();подскажи как это в качестве парметров?

при таком void TPP::on_GoButton_clicked(int argc, char **argv), у меня кнопка прекращала свою работу.
0
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
18.10.2011, 15:20 #20
Есть вопрос. По поводу: Using namespace std, который употребляется либо как директива, либо без директивы, но тогда придётся прописывать: std::.......
На форуме кто-то отвечал в одной из тем, зачем мол данная директива, когда есть в коде такая-то функция. Можете ли объяснить данную ситуацию, в каком случае необходимо побрезговать пространством имён?
0
rrrFer
Заблокирован
18.10.2011, 16:05 #21
Revol'veR, за счет применения пространств имен можно использовать одинаковые имена в разных частях программы, при этом эти имена будут иметь разные значения.

Если мы пишем using namespace - то все имена пространства "вливаются" в наше текущее пространство, и использовать их для своих целей мы уже не можем. Конечно, не стоит использовать имена, используемые в std, но есть множество библиотек, имена в которых могут случайно совпадать. Поэтому using лучше не использовать.
0
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
18.10.2011, 16:07 #22
rrrFer, Поточнее можно на примере о замене Данного пространства имён. Пожалуйста.
0
rrrFer
Заблокирован
18.10.2011, 17:12 #23
C++
1
2
3
4
5
6
#ifndef __NSP_H__
#define __NSP_H__
namespace _test_ {
    int a;
}
#endif
C++
1
2
3
4
5
6
7
8
9
10
11
#include "nsp.h"
#include <iostream>
using namespace _test_;
int main() {
    _test_ ::a = 0;
    std ::cout << a << " ";
    int a = 1;
    std ::cout << a << " ";
    std ::cout << _test_ ::a << " ";
    return 0;
}
до объявления переменной "a" - std ::cout << a << " "; возвращает одно значение, после - другое, и при этом если изменять значение "а" - то значение в пространстве _tst_ не меняется.

Вобщем получается нечто типа "глобальной" переменной, что нехорошо.
Цитата Сообщение от Revol'veR Посмотреть сообщение
на примере о замене Данного пространства имён
про замену я где-то говорил?
1
Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
19.10.2011, 14:47 #24
Ещё вопросик.
Eсть ли разница, употреблять в С/С++: printf и scanf или же: cout и cin?
0
rrrFer
Заблокирован
19.10.2011, 14:51 #25
Revol'veR, В Си -printf/scanf/fprint/sprintf/...
В С++ - потоки, хотя бы потому что пользовательский класс может перегрузить операторы ввода/вывода в поток
1
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
19.10.2011, 15:00 #26
Цитата Сообщение от Revol'veR Посмотреть сообщение
Eсть ли разница, употреблять в С/С++: printf и scanf или же: cout и cin?
В принципе уже ответили, добавлю только, что уж совсем плохая практика - совмещать в программе на С++ printf/scanf c cin/cout. Из-за по-разному устроенной буферизации часть ввода/вывода может просто пропадать при определённом "везении"...
2
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
26.10.2011, 10:22  [ТС] #27
и снова вопрос:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int             wr_open(char* name)
  {
  return rw_open(name, O_RDWR);
  }
 
int             rw_open(char* name, int attr)
  {
  int           fd;
  char          buf[4];
 
  if (  (fd = open(name, attr)) < 0
    ||  read(fd, buf, sizeof(buf)) != sizeof(buf)
    ||  strcmp(buf, stamp)
     )
    {
    close(fd);
    return -1;
    }
  return fd;
  }
fd получает значение -1 , а нужно чтобы было больше 0,получается что открытие файла на чтение не происходит, в чем может быть проблема?

среда QT: и в "консоли приложения" пишит
can't find linker symbol for virtual table for `QString:ata' value
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x201 in read in psymtab, but not in symtab.)
(Internal error: pc 0x201 in read in psymtab, but not in symtab.)
(Internal error: pc 0x201 in read in psymtab, but not in symtab.)
(Internal error: pc 0x201 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
(Internal error: pc 0x0 in read in psymtab, but not in symtab.)
0
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
28.10.2011, 10:19  [ТС] #28
а вот такую проблему как решить?
файл *.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
namespace Ui {
    class MainWindow;
}
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
 
private:
    Ui::MainWindow *ui;
void cacl(char* x);
private slots:
    void on_pushButton_clicked();
};
файл MainWindow.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
int y;
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
 
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::cacl(char *x)
{
    s=ui->spinBox->value();
    y = x+s;
}
 
void MainWindow::on_pushButton_clicked()
 
{    
    QMessageBox::critical(this,tr("Message"),tr("message"));
}
файл main.cpp^
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <QtGui/QApplication>
#include "mainwindow.h"
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    char* x = argv[1];
    MainWindow::cacl(&x);
    return a.exec();
}
ошибка:
main.cpp: In function 'int qMain(int, char**)':

main.cpp:31: error: no matching function for call to 'TPP::TPP_Calc(char*&, char**, char**)'

dialog.h:34: note: candidates are: void TPP::TPP_Calc(char*, char*, char*)

перевожу: Никакая функция соответствует для запроса к ' TPP::

не могу понять где косяк, и как решить его(
0
rrrFer
Заблокирован
28.10.2011, 16:07 #29
пишите нормальный код и странных ошибок не будет.
Я про глобальную переменную "y", вот про это: "y = x+s;" (откуда берется "s" я так и не понял)
ну и про это:
C++
1
2
3
4
5
6
7
8
9
10
class MainWindow : public QMainWindow {
//...
private:
void cacl(char* x);
//...
}
int main(int argc, char *argv[]){
//...
MainWindow::cacl(&x);
}
чтобы так вызывать cacl, функция должна быть статической, а она у вас не только не статическая но еще и объявлена в секции private

понять это:
C++
1
2
3
4
5
int y;
void MainWindow::cacl(char *x) {
//...
    y = x+s;
}
я тоже не смог. С типами переменных все нормально?
0
28.10.2011, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 16:07
Привет! Вот еще темы с ответами:

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Написать контрольные вопросы по теме "Массивы объектов" (теория) - C++
Массивы объектов - C++ Теория

Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" - C++
В книге С. Бобровского &quot;Самоучитель программирования на языке С++&quot;, написание кодов небольших программ и объяснения для чего все написано. ...

Ищу ответы на вопросы из задачника Златопольского Д. М. "Сборник задач по программированию " - C++
Есть отличнейший задачник Златопольский Д. М. &quot;Сборник задач по программированию &quot; но решений в нём нет((( и найти их что-то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.