Модераторы: bsa

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Программа не работает в отладке. 
V
    Опции темы
Xon
Дата 15.3.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.3.2009

Репутация: -1
Всего: -1



Изучаю Си. 
Мной создан консольный проект С++ в VS6.
Код компилируется без ошибок но при запуске в отладке вылетает сообщение

Debug Assertion failed!
Program:D:\0\___Debug\1.exe
File:fgets.c
Line:60
Expression:str !=NULL

А практически происходит то что fopen возвращает нули
Это в отладке 
а просто запустить прогу из директории то она удачно отрабатывает.

Не могу понять  как вообще запускается программа на исполнение из под VS6.
И как мне её поиметь в отладчике??


Код

/*Программа должна иметь небольшой файл 121.c     
с любым содержимым но строки не должны превышать 199 символов
в той директории где она находится 
программа создаст новый файл в своей директории z.c
и перепишет в него содержимое 121.c  сдвинув его впрао символом табуляции.
*/




#include<stdlib.h>
#include <stdio.h> 
#define BSIZE 200 //задаём СИМВОЛИЧЕСКУЮ переменную которую должен обработать препроцессор\
//она нужна для того чтобы не выставлять каждый раз цифру 200 а вместо нее напишем  BSIZE   \
//и если надо будет сменить цифру по всей программе то мы её просто сменим тут.
int main()

char buf[BSIZE]; //создаём обычный статический массив на 200 элементов
FILE *in, *out;  //обьявляем указатели на файлы
 
in=fopen("121.c","rb");// откроем сущесвующий файл для чтения из него
out=fopen("z.c","wb"); // создадим и откроем новый файл для записи в него


buf[0]='\t';           // впишем в нулевой элемент символ табуляции он всё время будет там 
                       //и сдвинет все строки влево в файле записи

while(fgets(buf+1,BSIZE-1,in) != NULL)// в цикле переписываем из одного файла в другой
fputs(buf,out); //
fclose(in); //
fclose(out); //
system("PAUSE");  //не дадим закрыться окну
return 0; 




PM MAIL   Вверх
pan2004
Дата 15.3.2009, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 2
Всего: 9



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


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
zim22
Дата 15.3.2009, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



 smile 
Xon, комментарии у тебя в программе - жесть!

Код

int x = 0; // создаём целочисленную переменную с именем икс, инициализированную нулём.
int y = x; // создаём целочисленную переменную y, инициализируя её значением икс. после инициализации переменная y будет содержать значение икс.
int *s = new int(10); // создаём обычный указатель по имени ЭС, которому будет передан адрес из динамической памяти, возвращённый оператором new.




--------------------
PM MAIL   Вверх
andrew_121
Дата 15.3.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 10
Всего: 33



zim22,  smile  smile 


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Xon
Дата 16.3.2009, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.3.2009

Репутация: -1
Всего: -1



Да... Похоже что нет сдесь программистов 
писавших программы работающие с файлами...
Или они в отладчике не работают?...
PM MAIL   Вверх
C/L
Дата 16.3.2009, 01:55 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 31.7.2004
Где: Самара

Репутация: нет
Всего: 1



Цитата(Xon @  16.3.2009,  02:31 Найти цитируемый пост)
Да... Похоже что нет сдесь программистов писавших программы работающие с файлами...

 smile  smile 

вот же ответ:

Цитата(pan2004 @  15.3.2009,  02:14 Найти цитируемый пост)
файлов нет там где она ищет, вот и не работает.Рабочие каталоги могут отличаться при запуске программы из студии и из консоли.


Это сообщение отредактировал(а) C/L - 16.3.2009, 02:00
PM MAIL WWW ICQ   Вверх
Xon
Дата 16.3.2009, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.3.2009

Репутация: -1
Всего: -1



А вот вопрос:

Цитата

Не могу понять  как вообще запускается программа на исполнение из под VS6.
И как мне её поиметь в отладчике??


Если не в состоянии ответить то хотя бы пошлите куда нибудь
или напишите пример который непременно будет работать в отладке
то что прога в отладке не находит файла так это я с самого начала знал

Цитата

А практически происходит то что fopen возвращает нули
Это в отладке 
а просто запустить прогу из директории то она удачно отрабатывает

для тех кто внимательно читал вопрос.
PM MAIL   Вверх
mes
Дата 16.3.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Xon @  15.3.2009,  23:31 Найти цитируемый пост)
Да... Похоже что нет сдесь программистов 
писавших программы работающие с файлами...

Ага, Вы единственный !

Цитата(Xon @  16.3.2009,  09:18 Найти цитируемый пост)
для тех кто внимательно читал вопрос. 

для тех кто невнимательно читал ответ, процитирую eще раз:

Цитата(C/L @  16.3.2009,  00:55 Найти цитируемый пост)

Цитата(pan2004 @  14.3.2009,  23:14 Найти цитируемый пост)
файлов нет там где она ищет, вот и не работает.
Рабочие каталоги могут отличаться при запуске программы из студии и из консоли



Цитата(Xon @  16.3.2009,  09:18 Найти цитируемый пост)
Если не в состоянии ответить то хотя бы пошлите куда нибудь

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

P.S. если хотите, чтоб к Вам относились с уважением, старайтесь вести себя достойно, а не вызывающе грубить.

Это сообщение отредактировал(а) mes - 16.3.2009, 10:43


--------------------
PM MAIL WWW   Вверх
Anikmar
Дата 16.3.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата(Xon @  16.3.2009,  10:18 Найти цитируемый пост)
Если не в состоянии ответить то хотя бы пошлите куда нибудь

Будете грубить - точно пошлют  smile 

Как вариант - чтобы работало и в релизе и в отладчике при открытии файлов задайте им какой-нибудь абсалютный путь, например:
c:\111\Test.txt



PM MAIL ICQ   Вверх
zim22
Дата 16.3.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Anikmar @  16.3.2009,  10:51 Найти цитируемый пост)
задайте им какой-нибудь абсалютный пут

или функцию main описать так:
Код

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

и потом указывать имя файла непосредственно из командной строки.


--------------------
PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Цитата

или функцию main описать так:
код C++
1:
int main(int argc, char *argv[])

и потом указывать имя файла непосредственно из командной строки. 


Ага, а потом автор темы скажет, что здесь нет программистов, которые умеют работать с командной строкой.
Ему же придется параметры в среде прописывать  smile 
PM MAIL ICQ   Вверх
zim22
Дата 16.3.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



 smile 
Цитата(Anikmar @  16.3.2009,  11:24 Найти цитируемый пост)
Ему же придется параметры в среде прописывать

А что такое среда? А что такое консоль? А где я нахожусь? Вокруг нету ни одного программиста... Одни люди в белых халатах. Они точно не программисты. Сейчас подойду и спрошу у них, умеют ли они дебажить в нулевом кольце! Аййййй, не засовывайте мне эти таблетки в рот! Не колите меня этими уколами. Я Форумчанин! Не имеете права!  smile 


--------------------
PM MAIL   Вверх
Xon
  Дата 16.3.2009, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.3.2009

Репутация: -1
Всего: -1



Кстати с принудительно прописанным путём таже беда

наверное проблема с настройкам VS а может ещё что нибудь
Мне уже неудобно просить кого нибудь утруждать себя
прокрутить это код у себя в VS .


Спасибо всем весёлым и злобным кто попытался помочь 

прошу тему считать  закрытой
PM MAIL   Вверх
zim22
Дата 16.3.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Xon, добавь эту строчку в программу и потом кинь файл 121.с в ту же директорию
Код

printf("%s\n", __FILE__);


Это сообщение отредактировал(а) zim22 - 16.3.2009, 12:32


--------------------
PM MAIL   Вверх
Dmi3ev
Дата 16.3.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



 smile 
Цитата

#define BSIZE 200 //задаём СИМВОЛИЧЕСКУЮ переменную которую должен обработать препроцессор\
//она нужна для того чтобы не выставлять каждый раз цифру 200 а вместо нее напишем  BSIZE   \
//и если надо будет сменить цифру по всей программе то мы её просто сменим тут.

я себе это скопировал на память после того, как оборжался...  smile 
Цитата

fputs(buf,out); //
fclose(in); //
fclose(out); //

муза покинула, решил пропустить...  smile правильно, спешить не надо, надо найти нужные слова, 
чтобы кратко и понятно (как в случае с #define BSIZE 200) описать суть данных строк... полностью согласен...  smile 
муза вернулась   smile 
Цитата

system("PAUSE");  //не дадим закрыться окну

PS
Цитата

buf[0]='\t';           // впишем в нулевой элемент символ табуляции он всё время будет там 
                       //и сдвинет все строки влево в файле записи

это тоже корка...  smile 

Это сообщение отредактировал(а) Dmi3ev - 16.3.2009, 13:21


--------------------

PM MAIL   Вверх
Dmi3ev
Дата 16.3.2009, 13:55 (ссылка) |    (голосов:7) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Так зацените, вот мой вариант комментов для Xon 
Код

#include<stdlib.h>//Подключил я хидер-файл, но неправильно... Подправил!
#include <stdio.h>//Подключил еще попозже. Код растет, ну прям как дрожжи!
#define BSIZE 200 //Я константу забабахал, Чтоб размер мне мозг не т...хал

int main()//Вот и главная фигня, Это было до меня...
{//Скобку ставлю для начала, Чтоб программа не пищала...
char buf[BSIZE]; // Пригодился мой дефайн, все работает и файн...
FILE *in, *out;  // Указатель объявлю, хотя Си я не люблю...
 
in=fopen("121.c","rb");// Я бинарник открываю, Потом оттуда почитаю...
out=fopen("z.c","wb"); // А сюда буду писать, Но сначала прочитать!!!
buf[0]='\t';// Таб я запишу сюда, Вот такая ерунда...

while(fgets(buf+1,BSIZE-1,in) != NULL)// Тут я цикл запускаю, Все, по ходу отпускает...
fputs(buf,out); // Здесь пожалуй пропущу
fclose(in); // Здесья я тоже не хочу
fclose(out); // Хм.. со следущей начну, а пока пойду взд..ну
system("PAUSE");  //Не дадим окну закрыться, а то мама будет злиться...
return 0;// и ретёрн тут как обычно, вообщем сделал все прилично.
} //Скобку тут чуть не забыл. Но поставил, не ступил...



Это сообщение отредактировал(а) Dmi3ev - 16.3.2009, 13:57


--------------------

PM MAIL   Вверх
Anikmar
Дата 16.3.2009, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 5
Всего: 59



Dmi3ev,  smile  smile  smile 
PM MAIL ICQ   Вверх
mes
Дата 16.3.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



 smile 
Цитата(Dmi3ev @  16.3.2009,  12:55 Найти цитируемый пост)
;// Я бинарник открываю, Потом оттуда почитаю...
 // А сюда буду писать, Но сначала прочитать!!!

Какой талант пропадает ! Dmi3ev, я думаю ты первооткрыватель этого жанра.. Комменты в стихах я еще не видел. 
Как прославишься не забудь поделиться лаврами с Xon. Ведь это именно он помог найти себя !
 smile  smile  smile 

Это сообщение отредактировал(а) mes - 16.3.2009, 14:20


--------------------
PM MAIL WWW   Вверх
Dmi3ev
Дата 16.3.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

Как прославишься не забудь поделится лаврами с Xon. Ведь это именно он помог найти себя !

 smile  ОК

Добавлено через 6 минут и 9 секунд
Ржачная тема получилась... Думаю Xon оценит. Как гангстер прозы в С++, он заметит воротилу рифмоплетства в С++, иначе не может быть.
Томики с нашими комментами будут расходиться за день...

Это сообщение отредактировал(а) Dmi3ev - 16.3.2009, 14:14


--------------------

PM MAIL   Вверх
mes
Дата 16.3.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Dmi3ev @  16.3.2009,  13:13 Найти цитируемый пост)
Ржачная тема получилась... Думаю Xon оценит. Как гангстер прозы в С++, он заметит воротилу рифмоплетства в С++, иначе не может быть.
Томики с нашими комментами будут расходиться за день...


По +1 каждому из "авторов" smile  хоть и оффтопик, a настроение поднялось выше некуда smile 



--------------------
PM MAIL WWW   Вверх
Dmi3ev
Дата 16.3.2009, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



 smile 
Цитата

По +1 каждому из "авторов" smile  хоть и оффтопик, a настроение поднялось выше некуда smile 

по делу все сказано, можно и поглумиться немного... тем более, что я такой темы еще не видел...
+ к этому - поднять настроение людям - тоже хорошо... 



--------------------

PM MAIL   Вверх
Xon
Дата 16.3.2009, 14:42 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.3.2009

Репутация: -1
Всего: -1



Код

так зацените, вот мой вариант комментов для Xon 
Так зацените, вот мой вариант комментов для Xon 

код C++    
1:    
2:    
3:    
4:    
5:    
6:    
7:    
8:    
9:    
10:    
11:    
12:    
13:    
14:    
15:    
16:    
17:    
18:    
19:    
20:    
#include<stdlib.h>//Подключил я хидер-файл, но неправильно... Подправил!    
#include <stdio.h>//Подключил еще попозже. Код растет, ну прям как дрожжи!    
#define BSIZE 200 //Я константу забабахал, Чтоб размер мне мозг не т...хал    
int main()//Вот и главная фигня, Это было до меня...    
{//Скобку ставлю для начала, Чтоб программа не пищала...    
char buf[BSIZE]; // Пригодился мой дефайн, все работает и файн...    
FILE *in, *out;  // Указатель объявлю, хотя Си я не люблю...    
    
in=fopen("121.c","rb");// Я бинарник открываю, Потом оттуда почитаю...    
out=fopen("z.c","wb"); // А сюда буду писать, Но сначала прочитать!!!    
buf[0]='\t';// Таб я запишу сюда, Вот такая ерунда...    
while(fgets(buf+1,BSIZE-1,in) != NULL)// Тут я цикл запускаю, Все, по ходу отпускает...    
fputs(buf,out); // Здесь пожалуй пропущу    
fclose(in); // Здесья я тоже не хочу    
fclose(out); // Хм.. со следущей начну, а пока пойду взд..ну    
system("PAUSE");  //Не дадим окну закрыться, а то мама будет злиться...    
return 0;// и ретёрн тут как обычно, вообщем сделал все прилично.    
} //Скобку тут чуть не забыл. Но поставил, не ступил...    



Это сообщение отредактировал(а) Dmi3ev - 16.3.2009, 13:57 



--------------------

Могу предположить что ты по жизни носишь очки.
PM MAIL   Вверх
vinter
Дата 16.3.2009, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 8
Всего: 56



Цитата(Xon @  16.3.2009,  15:42 Найти цитируемый пост)
Могу предположить что ты по жизни носишь очки.

 smile  smile  smile 


--------------------
Мой блог
PM MAIL WWW   Вверх
bsa
Дата 16.3.2009, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




M
bsa
тема себя исчерпала, закрываю во избежание возможных наездов

PM   Вверх
Страницы: (2) [Все] 1 2 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1213 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.