На вывод попадают лишние символы - C (СИ)
Формулировка задачи:
При многократном (а иногда и при первом) вводе и выводе данных к выводимому начинает пририсовывать какие-то рожицы и прочие непечатные символы.
Программа принимает текст произвольных размеров, ищет в нем идентификаторы (слова начинающиеся с цифры, в данном случае) и создает новый текст, в котором нет строчек, в которых нет идентификаторов.
Вот код ввода:
Вот код функции вывода:
И все время выводит сам текст+ еще несколько символов в конце строки в виде каких-то загогулин и рожиц!
Просто ума не приложу где тут ошибка.
По идее- что с памятью, где-то счетчик цикла выбегает за границу массива, но на мой взгляд все точно...
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
char**txt=NULL, **novii_txt=NULL,**txt2=NULL;
int vibor,stroki,nov_stroki,end,m1,stroki2;
stroki=m1=vibor=0;
end=1;
char b[80];
int i,z;
i=0;
//заголовок функции и проч. ...
//...
puts("\nVvedite text: ");
fflush(stdin);
gets(b);
z=0;
while(z!=1)
if(b[0]!='\0')
{
txt2=(char**)realloc(txt2,i+1*sizeof(char*));
txt2[i]=(char*)malloc((strlen(b)+1)*sizeof(char));
strcpy(txt2[i],b);
i++;
gets(b);
z=0;
}
else
z=1;
stroki2=i;
txt=txt2;
getch();void VIVOD_TEXTA(char**txt3,int stroki3)
{
int i;
printf("TEXT:\n\n");
for(i=0;i<stroki3;i++)
puts(*(txt3+i));
getch();
}Решение задачи: «На вывод попадают лишние символы»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
void VIVOD_TEXTA (const char * ptr)
{
printf("TEXT:\n\n%s\n", ptr);
getch();
}
int main (int argc, char * argv[])
{
char b[80];
memset(b, 0, sizeof(b));
puts("\nVvedite text: ");
fflush(stdin);
fgets(b, sizeof(b) - 1, stdin);
VIVOD_TEXTA(b);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и стандартными функциями
- Определение функции вывода текста с указанием указателя на текст
- Ввод текста с помощью функции fgets в массив b
- Вывод текста с помощью функции printf и получение сигнала конца файла с помощью функции getch
- Вызов функции вывода текста с указанием введенного текста в качестве аргумента
- Конец программы с возвратом значения 0