Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
.des.
1

Строки (массив char), указатели. Не могу понять логику! Help!

13.12.2008, 09:10. Показов 1622. Ответов 2
Метки нет (Все метки)

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

#define MAXDATASIZE 10000
char answer[MAXDATASIZE]={'*'};
char *p=NULL;
FILE *request_file;
char ch;
main()
{
memset(answer, 0x00, sizeof(answer));
strcpy(answer,'Kakaja to stroka dlinoi skazhem 100 simvolov!!!! sssssssssssssssssss');
// Вывод всей строки - все 100 символов
cout << answer;
if ((request_file=fopen(name_request_file, 'r'))==NULL)
{
fprintf(stderr, 'Cannot open input file.
');
return 1;
}
p=answer;
while(!feof(request_file)) // файл длиной допустим 80 символов.
{
ch=fgetc(request_file);
*p++=ch;
}
*p='*' // Добавляем нулевой байт конца строки
cout << answer;
// выводится сам файл и остатки первой строки - то есть лишние 20 байт!
// Блин! Вот я и не пойму так должно быть или я в принципе делаю что-то неправильно?
// ведь он должен выводить строку!! А нулевой байт у нее на отметке 80 символов.
// Замена потока cout на функцию printf ничего не дает.как же сложно переходить на C с Делфи
return 1;
}

Заранее благодарен.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2008, 09:10
Ответы с готовыми решениями:

Неровный треугольный массив, не могу понять логику
Доброго времени суток. Помогите пожалуйста разобраться. Вопрос: почему 0-ой элемент массива не...

Не могу понять логику
Ребята подскажите в чем ошибка. Вот часть кода: Public Class Connect Public x As...

Не могу понять логику Яндекса...
Виноват, недоглядел один момент. Администраторы, убейте пожалуйста тему.

Не могу до конца понять логику скрипта
В общем взял один американский шаблон и адаптирую под себя. Там есть кусок кода отвечающий за...

2
3836 / 2768 / 641
Регистрация: 08.06.2007
Сообщений: 9,456
Записей в блоге: 4
13.12.2008, 22:38 2
Странно, ваш пример на VC 6.0 и на Borland C работает правильно. Какой компилятор вы используете?
0
1 / 1 / 0
Регистрация: 17.12.2008
Сообщений: 6
17.12.2008, 11:08 3
А сделайка в хвосте p = answer; и cout << p;

Возможно у тебя какой-то веселый компилер с библиотекой потоков, который различай в операторе << char[] и char*...

Всех благ. Артем.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2008, 11:08

Не могу понять логику обращения к предикату
Готовясь к ГОСам, прорешиваю задачки. Затормозил на одной задачке по прологу, с виду простейшей....

Не могу понять логику полученного результата запроса
Есть 2 таблицы: Сотрудники и Кадровые события. Связь один ко многим (Один сотрудник может иметь...

Не могу понять логику, обьясните что за чем пожалуйста
#include &lt;iostream&gt; using namespace std; int stonetolb (int); //прототип функции int main () {...

Не могу понять логику чтения по SPI от Slave к мастеру
Приветствую всех. С передачей по SPI данных от мастера к слейву всё понятно. Когда мастеру есть...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru