КИТА unofficial
Ноябрь 22, 2024, 05:34:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: 1 ... 9 10 [11] 12   Вниз
  Печать  
Автор Тема: Вопросы в С/С++  (Прочитано 161944 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #200 : Февраль 09, 2009, 09:45:46 »

здесь лучше динамически память с помощью malloc выделять под массив, сколько надо столько и выделяешь.
Требование в работе как раз объявить в main (если я не ошибаюсь, и это, действительно, 4-я лаба), чтобы народ прочувствовал тонкости адресации элементов. Думаю, вопрошающий как раз прочувствовал, и мы его обучили, что не может не радовать )))
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Storm
Верховный
Администратор
Аспирант
*****

Карма: +29/-0
Offline Offline

Пол: Мужской
Сообщений: 484



« Ответ #201 : Февраль 09, 2009, 09:49:20 »

Программа работает правильно, ошибка в алгоритме.
Записан

Только две вещи бесконечны: вселенная и тупость, и я еще не уверен по поводу вселенной. (Альберт Эйнштейн)
----------------------------------------------------
"There are two major products that came out of Berkeley: LSD and UNIX. We don't believe this to be a coincidence." (с) Jeremy S. Anderson

Проходит ирландец мимо паба....
SPL
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 57



« Ответ #202 : Февраль 09, 2009, 09:50:30 »

Спасибо, не подумал Улыбка
Цитировать
здесь лучше динамически память с помощью malloc выделять под массив, сколько надо столько и выделяешь.

Ну это понятно, просто по условию необходимо без динамической памяти реализовать Улыбка
Записан
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #203 : Февраль 24, 2009, 01:09:11 »

Вопрос по компиляции проекта в VC++ 2008 переехал в тему Компиляторы С/С++
Записан
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #204 : Март 03, 2009, 11:56:42 »


Всем доброй ночи, помогите решить такую проблему. У меня есть файлик вот такого содержания:

Код:
0000
0001
0010
0011

Я хочу каждую строчку считать отдельно и для начала вывести ее на экран (далее будут изменения под алгоритм), раньше я особо никогда не сталкивался с позиционированием в файлах поэтому никак не могу выполнить это нормально.

Вот код:
Код:
typedef union bit UBIT;

int main(int argc, char* argv[])
{

char path[] = "D:\\File.txt";
char *b;

b = new char[4];

UBIT s;
fstream InputFile("D:\\File.txt",ios::in|ios::out);

int i,j;

unsigned int buf;

buf = 0;

for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{

cout<<(char)InputFile.get();
}

cout<<endl;
InputFile.putback((char)InputFile.get());
}


InputFile.close();
cout<<"press ENTER"<<endl;
delete[] b;
cin.ignore();
return 0;

}

Как бы мне установить правильно позиционирование и считать строки файла?
Заранее благодарен  Улыбка
Записан
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #205 : Март 04, 2009, 01:18:07 »

Я хочу каждую строчку считать отдельно
Магнетон Бора, для этого существует метод getline()
Код:
char str[5];
while(fin.good())
{
   fin.getline(str, 5);
   cout<<str<<endl;
}
fin.close();

Кстати, в приведенном тобой выше коде, ты выделяешь память под 4 символа в строке b, при этом забыв "забронировать" место для '\0'. Да и вообще, честно говоря, код странный, ведь строка b у тебя даже нигде не используется.
« Последнее редактирование: Март 04, 2009, 01:40:33 от artem90 » Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #206 : Март 04, 2009, 10:11:01 »

Кстати, в приведенном тобой выше коде, ты выделяешь память под 4 символа в строке b, при этом забыв "забронировать" место для '\0'. Да и вообще, честно говоря, код странный, ведь строка b у тебя даже нигде не используется.
У него не строки, а массивы char, и читает он данные посимвольно. Так что в плане '\0' ошибки тут как раз нет. Главное потом не использовать переменную b как строку, а работать с ней только как с массивом. Но этого мы пока не увидели ))
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #207 : Март 05, 2009, 07:46:39 »

ммммм спасибо за помощь ))))))))))
Записан
Alex08
Абитуриент


Карма: +0/-0
Offline Offline

Сообщений: 2


« Ответ #208 : Март 08, 2009, 11:27:41 »

Здраствуйте...
Возникли проблемы при написании программы(((
Задача. найти количество предлогов в тексте по ООП.
вот до чего дошел, но оно не считает. предлоги((...помогите пжлста.

Записан
Артем
sprata
Mодератор
Завкаф
*****

Карма: +40/-5
Offline Offline

Пол: Мужской
Сообщений: 1107


« Ответ #209 : Март 09, 2009, 01:40:17 »

Alex08, ф-ия strcmp используется для сравнения 2-ух строк, поэтому для поиска предлогов в строке она не подходит.  Можно использовать ф-ию для поиска подстроки в строке - strstr. Для этого в коде нужно будет сделать небольшие изменения.
Код:
char *p;
// ...
p = strstr(c, a[j]);
       if(p != NULL) k++;
Но тут есть один важный нюанс, ф-ия strstr возвращает указатель только на ПЕРВОЕ вхождение подстроки в строку. Поэтому, если в тексте будут повторяющиеся предлоги, то эта ф-ия уже не подойдет. В этом случае придется писать собственную ф-ию, которая будет посимвольно перебирать текст в строке, и подсчитывать кол-во предлогов.

Кстати, обрати внимание на то, что по заданию нужно работать с ТЕКСТОМ, а не с одной строкой. Поэтому потребуется создать массив строк и доработать лабу. Удачи !
Записан
ZaQ
Бакалавр
**

Карма: +6/-1
Offline Offline

Пол: Мужской
Сообщений: 128



« Ответ #210 : Март 09, 2009, 05:07:09 »

а stl юзать нельзя?
Кстати под дос можно OpenWatcom юзать. там и стл и еще куща всяких плюшек.
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #211 : Март 09, 2009, 05:09:51 »

Думаю, это 6-я лаба по по алгоритмизации (дисциплина "Основы программирования...", языка plain C). Вряд ли это по ООП - там классами и не пахнет. А в лабах по plain C используем как раз только этот самый plain C, никаких сторонних библиотек, и уж тем более, нельзя STL.

ZaQ, а оболочка (IDE) там какая-то удобоваримая есть?
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
ZaQ
Бакалавр
**

Карма: +6/-1
Offline Offline

Пол: Мужской
Сообщений: 128



« Ответ #212 : Март 09, 2009, 05:12:07 »

есть, и хелп есть. Скрины можно у них на сайте поглядеть.
кстати кросс-платформенная штука.
Записан
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #213 : Март 19, 2009, 11:12:06 »

Коллеги, помогите разобраться у меня есть бинарный файл в которомм зашифровано слово TRUE. Я его читаю, но в конце добавляется какой-то бред не могу понять почему...

Код:
#include "stdafx.h"

#include "fstream.h"
#include "conio.h"
#include "stdio.h"
#include <iostream>
#include <vector>
#include "math.h"

int main(int argc, char* argv[])
{
char path[] = "D:\\File_In";
char *b;
unsigned int zero, one;

fstream InputFile("D:\\File_In",ios::in|ios::binary|ios::out);

if (!InputFile)
{
cerr<<"Îøèáêà îòêðûòèÿ ôàéëà..."<<endl;
};

int i;

unsigned int buf;

b = new char[4];


InputFile.read(b,4);
cout<<b<<endl;

InputFile.close();
cout<<"press ENTER"<<endl;
delete[] b;
cin.ignore();
return 0;
}

Результат:
Код:
TRUE¤¤¤¤1
press ENTER

Откуда взялись остальные символы?  Непонимающий
Записан
Alexandr
Завкаф
****

Карма: +23/-5
Offline Offline

Пол: Мужской
Сообщений: 1445


WWW
« Ответ #214 : Март 19, 2009, 11:14:25 »

если я не все забыл, то это признак конца файла
Записан

Береги себя там среди дорог...
-----------------------------
Наркотик трасса-это на всю жизнь...
Магнетон Бора
ЖИЗНЬ - БАЯН
Cтудент
*

Карма: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 61



« Ответ #215 : Март 19, 2009, 11:18:20 »

А можно от них как-то при выводе избавиться, не прибегая к работе со строками?
Записан
Alexandr
Завкаф
****

Карма: +23/-5
Offline Offline

Пол: Мужской
Сообщений: 1445


WWW
« Ответ #216 : Март 19, 2009, 11:19:21 »

Магнетон Бора, сначала пусть гуру подтвердят прав ли я;)
может я наврал Улыбка
Записан

Береги себя там среди дорог...
-----------------------------
Наркотик трасса-это на всю жизнь...
ZaQ
Бакалавр
**

Карма: +6/-1
Offline Offline

Пол: Мужской
Сообщений: 128



« Ответ #217 : Март 21, 2009, 01:45:57 »

в конце строки b должен в обязательном порядке быть 0. т.е. char b = new char[5]; b[4] = 0;
А так это мусор за границей массива.
Записан
EvilMax
Администратор
Завкаф
*****

Карма: +59/-0
Offline Offline

Пол: Мужской
Сообщений: 1072


Злой и страшный :)


« Ответ #218 : Март 21, 2009, 12:07:57 »

ZaQ, именно так. Уже выяснили в реале. Улыбка
Записан

Оптимальная концентрация кофе - это когда код уже дает советы, как его написать, но еще не спорит с тобой и не подкалывает в случае неудач...
---
Существует три способа распространения программного обеспечения: воровство, грабёж и обмен краденым. (c) Неизвестный программист
luk4196
All good luck in our not light deal
Абитуриент


Карма: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 3



« Ответ #219 : Июнь 08, 2009, 09:29:42 »

 Не знаю что у тебя случилось мой тебе совет скачай DEV C/C++ 4.9.9.2.
и небудет никаких проблем,вот ссилочка:
http://www.bloodshed.net/dev/devcpp.html сам использую
хотя и новичок в програмировании начал изучать С/С++ . Смеющийся

Рекламные ссылочки на депозит идут лесом. В следующий раз будет бан. Alder
« Последнее редактирование: Июнь 08, 2009, 04:01:49 от Alder » Записан

All programmer regard
Страниц: 1 ... 9 10 [11] 12   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.149 секунд. Запросов: 37.