[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.27402 Reply
File: vk.png
Png, 59.11 KB, 676×341 - Click the image to expand
edit Find source with google Find source with iqdb
vk.png
Привет, анон, выручай. Вот код на С, он работает не правильно, помоги найти проблему. С меня как всегда.
Суть:
Нужно посимвольно записать в массив текстовый файл, а потом тупо вывести его в консоль.
Проблема: Содержимое файла выводится хорошо, но после него выводится еще странная абракадабра в виде множества букв "М"и ранее введенного в консоль адреса файла.
Код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
   setlocale(LC_ALL, "Russian");
   char path[255];
   char buf[255];
   char sym;
   printf("Please, enter test file path\n");
   scanf("%s",&path);
   FILE *f;
   f=fopen(path,"rt");
   int i;
   i=0;
   while((sym = fgetc(f)) != EOF)
   {
   buf[i]=sym;
   i++;
   }
   puts(buf);
   getch();
   return 0;
}
Пример содержимого файла: "123456".
Пример того что выводится в консоль на пикрилейтед.
Можно бросаться гнилыми овощами, и говорить какой я мудак. Буду примать к сведению, и делать правильно.
>> No.27403 Reply
File: 197.jpg
Jpg, 76.18 KB, 800×1200 - Click the image to expand
edit Find source with google Find source with iqdb
197.jpg
бамп
>> No.27404 Reply
>>27402
Всё логично же. Ты создал массив buf размером в 255 байт и вывел его весь - поэтому на экране отображается не только 123456, но и всякий хлам, который был в этом буфере до начала записи.
>> No.27405 Reply
>>27402
Альзо scanf("%s", path); должно писаться без амперсанда.
>> No.27406 Reply
А откуда в этом буфере берутся данные, которые я туда не записывал?
ОП
>> No.27407 Reply
>>27405
Спасибо :3
>> No.27408 Reply
>>27406
Компилятор может подставить в твою программу код, который будет инициализировать ячейки твоего буфера каким-нибудь начальным значением. А может и не подставить, и тогда в буфере будут куски данных от предыдущих программ.
>> No.27409 Reply
File: vk.png
Png, 60.27 KB, 675×342 - Click the image to expand
edit Find source with google Find source with iqdb
vk.png
Анон, это снова я.
Сразу к делу.
Вот код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "string"
int main()
{
   setlocale(LC_ALL, "Russian");
   using namespace std;
   char path[255];
   char buf[255];
   char str[255];
   struct teststr
   {
   char question[255];
   char var1[255];
   char var2[255];
   char var3[255];
   int truevar;
   };
   teststr tests[255];
   char sym;
   printf("Please, enter test file path\n");
   scanf("%s",path);
   FILE *f;
   f=fopen(path,"rt");//открываем файл
   int i,j,c;
   i=0;
   j=0;
   c=0;
   while((sym = fgetc(f)) != EOF)
   {
   if (sym=='|')
   {
   buf[i]='\0';
   strcpy(tests[j].question,buf);
   i=0;
   printf("%s\n",tests[j].question);
   c=1;
   }
   else if (sym=='#')
   {
   buf[i]='\0';
   strcpy(tests[j].var1,buf);
   i=0;
   printf("%s||",tests[j].var1);
   c=2;
   }
   else if (sym=='$')
   {
   buf[i]='\0';
   strcpy(tests[j].var2,buf);
   i=0;
   printf("%s||",tests[j].var2);
   c=3;
   }
   else if (sym=='*')
   {
   buf[i]='\0';
   strcpy(tests[j].var3,buf);
   i=0;
   printf("%s\nПравильный ответ: %d\n",tests[j].var3,tests[j].truevar);
   c=0;
   j++;
   }
   else if (sym=='^')
   {
   i=0;
   tests[j].truevar=c;
   }
   else
   {
   buf[i]=sym;
   i++;
   }
   }
   getch();
   return 0;
}
работа программы на пикрилейтед.
Содержимое файла:
Вопрос1|^Ответ1#Ответ2$Ответ3*
Вопрос2|Ответ1#^Ответ2$Ответ3*
Вопрос3|Ответ1#Ответ2$^Ответ3*
Вопрос4|^Ответ1#Ответ2$Ответ3*
Предназначение программы: Тестирование. Вопросы и ответы берутся из текстового файла с определенной структурой.
Проблема: неадекватная запись правильного варианта ответа в tests[j].truevar
ЧЯДНТ?
>> No.27410 Reply
File: source.zip
Zip, 0.00 KB, 0 files - Click the image to get file
view
source.zip
Вот архив, внутри исходник и текстовый файл.
>> No.27412 Reply
>>27409
Формат выходного файла сам придумал?
>> No.27413 Reply
File: 224.jpg
Jpg, 153.08 KB, 1600×1024 - Click the image to expand
edit Find source with google Find source with iqdb
224.jpg
А нет, всё заработало, но если ты начал искать способ мне помочь, то моя тебе благодарность, и няшка.
>> No.27414 Reply
>>27412
Файл входной, а не выходной.
Да, придумал сам. Да, убого, это, на что хватило фантазии.
>> No.27416 Reply
Доброанон, не поверишь, но я снова здесь. И опять прошу помощи. Одним из условий для моей курсовой, является использование прерываний. Я вижу это так: Выводится вопрос и пронумерованные варианты ответа, далее пользователь должен нажать на соответствующую правильному варианту цифру(в этом месте нужно использовать прерывания) далее, если ответ правильный, увеличивается кол-во набранных баллов.
Я понимаю как сделать всё, кроме реакции на прерывания. И вообще сам их механизм понимаю довольно отдаленно, потому как лекции проебалпроспал а в гугле забанили, да.
>> No.27417 Reply
File: 225.jpg
Jpg, 71.87 KB, 680×1024 - Click the image to expand
edit Find source with google Find source with iqdb
225.jpg
бумп
>> No.27418 Reply
>>27416
В Windows с начала нулевых нет доступа к прерываниям. Так что пиши свою собственную операционку.
>> No.27419 Reply
>>27418
dos.h?
>> No.27420 Reply
>>27419
Эмуляция прерываний есть, да.
>> No.27421 Reply
>>27420
И что мне нужно сделать, чтобы использовать силу?
>> No.27422 Reply
>>27421
Откопать древний компилятор турбопаскаля и писать на нём.
>> No.27423 Reply
>>27422
но мне сказали писать на си, и использовать прерывания. Это я идиот, или препод?
>> No.27424 Reply
>>27423
Тогда откопай древний си-компилятор. Или напиши под линукс.
>> No.27425 Reply
>>27420
А могу я писать в не древнем компиляторе, и использовать эмуляцию прерываний, и писать не под линукс? И не быть при этом мудаком.
>> No.27426 Reply
>>27425
Гм. Писать в компиляторе, да. Это не то что ты подумал.
>> No.27427 Reply
>>27423
> прерывания
сделай цикл while(true) {deelda(); if (ooslovie) break; } и скажи, что break - прерывает, так что в программе использованы прерывания.
>> No.27428 Reply
File: 926813928.jpg
Jpg, 17.30 KB, 288×233 - Click the image to expand
edit Find source with google Find source with iqdb
926813928.jpg
>>27425
писать в не древнем компиляторе
>> No.27429 Reply
File: 205.jpg
Jpg, 178.47 KB, 405×560 - Click the image to expand
edit Find source with google Find source with iqdb
205.jpg
>>27425
> А могу я писать в не древнем компиляторе
>> No.27430 Reply
>>27427
Пфф. Забавно, но я думаю препод не оценит.
>> No.27431 Reply
File: Комиксы-радуга-m-m-блевать-радугой-63238.jpeg
Jpeg, 54.33 KB, 688×464
Your censorship settings forbid this file.
r-18g
>>27425
> А могу я писать в не древнем компиляторе
> > писать в не древнем компиляторе
> > > писать в компиляторе
>> No.27432 Reply
>>27430
У тебя программа из одной функции на 20 строчек и ты говоришь, что в ней нужно использовать прерывания. Это вещи, скажем так, различных уровней.

Представь, что ты приходишь к нам и говоришь, что тебе нужно сделать самолёт, и показываешь бумажный самолётик из тетрадного листа. А на следующий день говоришь, что нужно использовать в нём двигатель от боинга.
>> No.27433 Reply
>>27428
>>27429
>>27431
Рашн форум. Один ответ по делу, триста - с указанием на то, что вопрошающий неграмотен.

мимокрок
>> No.27434 Reply
Ну же, пожалуйста, подскажи мне как использовать всякие там void interrupt, 60h, и иже с ними. Это ОСНЕ важно, анон.
>> No.27435 Reply
>>27434
Идея. А напиши-ка ты ассемблерную вставку.
>> No.27436 Reply
>>27432
как еще я могу реализовать курсовую по теме "Программа для тестирования с использованием прерыванием"?
>> No.27437 Reply
>>27434
Попроси у одноклассников готовые решения для других вариантов.
>> No.27438 Reply
File: 34.jpg
Jpg, 52.93 KB, 372×288 - Click the image to expand
edit Find source with google Find source with iqdb
34.jpg
>>27436
с использованием прерыванием
>> No.27439 Reply
>>27436
> использованием прерываний
selffix
>> No.27440 Reply
>>27436
программа из 20 строчек это курсач?
>> No.27441 Reply
>>27440
Быдлоколледж в мухосранске. Так что, как бы печально это не было, да.
>> No.27442 Reply
>> No.27443 Reply
File: 1321047369560.gif
Gif, 432.87 KB, 500×275 - Click the image to expand
edit Find source with google Find source with iqdb
1321047369560.gif
>> No.27444 Reply
>>27437
У адекватных одногруппников темы без прерываний.
>> No.27445 Reply
>>27444
Я не говорил про адекватных, я говорил про готовые решения. Чувствуешь разницу?
>> No.27446 Reply
>>27435
Я только начал в ассемблер. Т.е. даже не предполагаю как сделать ассемблерную вставку.
>> No.27447 Reply
>>27446
__asm mov ax, 10h
__asm mov ax, bx
>> No.27502 Reply
>>27436
Он имеет в виду разработку под MS DOS с использованием Borland C, смирись. Или дай ему понять, что его запрос несколько бессмысленен.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]