Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
.des.
Сообщений: n/a
#1

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

13.12.2008, 09:10. Просмотров 1174. Ответов 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;
}

Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2008, 09:10     Строки (массив char), указатели. Не могу понять логику! Help!
Посмотрите здесь:
Не могу понять логику, обьясните что за чем пожалуйста C++
C++ Указатели не могу понять
C++ Не могу понять зачем нужны указатели?
C++ Символьные литералы, указатели и функция. Не могу понять, почему именно так
Массив символов char и указатели C++
C++ Не могу понять, как "живут" файловые указатели
Запись строки char в массив char C++
строки в С++.. не могу их понять.. C++
Вывод строки. Не могу понять, в чем дело C++
C++ Строки в С++, не могу понять что неправильно в программе
C++ Не могу понять 2 строки кода функции из методички
Не могу понять как правильно считать строки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2563 / 1785 / 252
Регистрация: 08.06.2007
Сообщений: 6,913
Записей в блоге: 4
13.12.2008, 22:38     Строки (массив char), указатели. Не могу понять логику! Help! #2
Странно, ваш пример на VC 6.0 и на Borland C работает правильно. Какой компилятор вы используете?
Cordell
1 / 1 / 0
Регистрация: 17.12.2008
Сообщений: 6
17.12.2008, 11:08     Строки (массив char), указатели. Не могу понять логику! Help! #3
А сделайка в хвосте p = answer; и cout << p;

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

Всех благ. Артем.
Yandex
Объявления
17.12.2008, 11:08     Строки (массив char), указатели. Не могу понять логику! Help!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru