Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

Указатели не могу понять - C++
Все вопросы указал в комментариях к коду. Не могу понять почему так #include &lt;iostream&gt; using namespace std; int main() { int...

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

Символьные литералы, указатели и функция. Не могу понять, почему именно так - C++
Доброго времени суток всем! :) Изучаю С++, всегда стараюсь добить до последнего код, чтобы не было непоняток. Но сейчас наткнулся на...

Массив символов char и указатели - C++
В общем нужно сохранить путь к диску в переменную, что бы потом использовать в _findfirst Но сколько бы я не бился над этим, ничего не...

Не могу понять, как "живут" файловые указатели - C++
Не могу понять как живут файловые указатели... Есть у меня файл, и пишу в него 100 интов. Указатель ввода сдвигается на 400, так и надо....

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

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

Всех благ. Артем.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2008, 11:08
Привет! Вот еще темы с ответами:

Запись строки char в массив char - C++
Глупый вопрос, но что поделать, многое забыл... Хочу записть строку типа char в массив строк типа char, но выдает ошибку что &quot;невозможно...

строки в С++.. не могу их понять.. - C++
задание такое преобразовать строку, содержащую выражение на Си с операциями (= , == , != , а+= , а-=), в строку содержащую эти же...

Вывод строки. Не могу понять, в чем дело - C++
Добрый вечер. В программе на вход подается строка типа &quot;слово1-слово2&quot;, содержащаяся в переменной str. Я слово 1 помещаю в переменную...

Не могу понять как правильно считать строки - C++
Задача: Задача1. «Поиск в строке» Самым популярным вопросом прошлого контеста был вопрос о сколь угодно длинных строках. По...


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

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

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