Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 5.00
TiiL
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 17
11.10.2011, 09:09     вопросы связанные с темой "читай мат.часть" #1
Здравствуйте, имется код
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*)'

не пойму как решить, помогите.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2011, 09:09     вопросы связанные с темой "читай мат.часть"
Посмотрите здесь:

C++ АТД список. Заменить меньшую часть списка символом "#"
C++ Необработанное исключение в "0x54a2d2e9 (msvcr100d.dll)" в "3.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc".
Необработанное исключение в "0x1027c9c7 (msvcr100d.dll)" в "gh.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefeee". C++
Программа, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова "ноль", "один",..."девять" C++
Вопросы по книге С. Бобровского "Самоучитель программирования на языке С++" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rrrFer
Заблокирован
18.10.2011, 16:05     вопросы связанные с темой "читай мат.часть" #21
Revol'veR, за счет применения пространств имен можно использовать одинаковые имена в разных частях программы, при этом эти имена будут иметь разные значения.

Если мы пишем using namespace - то все имена пространства "вливаются" в наше текущее пространство, и использовать их для своих целей мы уже не можем. Конечно, не стоит использовать имена, используемые в std, но есть множество библиотек, имена в которых могут случайно совпадать. Поэтому using лучше не использовать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
18.10.2011, 16:07     вопросы связанные с темой "читай мат.часть" #22
rrrFer, Поточнее можно на примере о замене Данного пространства имён. Пожалуйста.
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 Посмотреть сообщение
на примере о замене Данного пространства имён
про замену я где-то говорил?
Revol'veR
 Аватар для Revol'veR
23 / 23 / 2
Регистрация: 05.11.2010
Сообщений: 134
19.10.2011, 14:47     вопросы связанные с темой "читай мат.часть" #24
Ещё вопросик.
Eсть ли разница, употреблять в С/С++: printf и scanf или же: cout и cin?
rrrFer
Заблокирован
19.10.2011, 14:51     вопросы связанные с темой "читай мат.часть" #25
Revol'veR, В Си -printf/scanf/fprint/sprintf/...
В С++ - потоки, хотя бы потому что пользовательский класс может перегрузить операторы ввода/вывода в поток
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
19.10.2011, 15:00     вопросы связанные с темой "читай мат.часть" #26
Цитата Сообщение от Revol'veR Посмотреть сообщение
Eсть ли разница, употреблять в С/С++: printf и scanf или же: cout и cin?
В принципе уже ответили, добавлю только, что уж совсем плохая практика - совмещать в программе на С++ printf/scanf c cin/cout. Из-за по-разному устроенной буферизации часть ввода/вывода может просто пропадать при определённом "везении"...
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.)
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::

не могу понять где косяк, и как решить его(
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2011, 16:07     вопросы связанные с темой "читай мат.часть"
Еще ссылки по теме:

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки C++
Необработанное исключение в "0x0fc1d484 (msvcr100d.dll)" в "1.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00aee0af" C++
C++ Курсовой проект с темой "Локальные и глобальные переменные. Правила видимости переменных в С++"

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

Или воспользуйтесь поиском по форуму:
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;
}
я тоже не смог. С типами переменных все нормально?
Yandex
Объявления
28.10.2011, 16:07     вопросы связанные с темой "читай мат.часть"
Ответ Создать тему
Опции темы

Текущее время: 17:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru