|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|||||||||||
После строки hello world выводится непонятный символ04.09.2014, 20:30. Показов 1213. Ответов 7
Метки нет (Все метки)
Здравствуйте!
Решил поизучать системное программирование под Linux, но понял, что C плохо знаю (чего не скажешь про C++). Застопорился на выводе буфера, который возвращает функция read с помощью printf. Вот код
Успешное выполнение открытия и усечения файла buffer: hello world � nr: 12 Т.е. после строки hello world выводится непонятный символ. Кто может подсказать, что это может быть. Есть предположение, что это символ '\0' Добавлено через 10 минут Что-то я совсем туплю - вот правильный код:
0
|
|||||||||||
| 04.09.2014, 20:30 | |
|
Ответы с готовыми решениями:
7
Непонятный символ вместо элемента строки Непонятный символ в конце строки при чтении файла
|
| 04.09.2014, 22:30 | |||||||||||
В printf передаётся адрес. Если в первом случае buffer имеет тип char * (т.е. указатель), то и печатается всё норм, а во втором случае, вместо адреса переменной nread передаётся само значение nread, соответственно и printf пытается вывести то, что содержится по адресу со значением в nread. (это часто бывает при банальных опечатках и обычно заканчивается segfault`ом). Надо выводить так:
0
|
|||||||||||
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|
| 05.09.2014, 09:03 [ТС] | |
|
Не до конца пойму, что имеется ввиду - buffer выводит строку "hello world", которая находится в файле, а nread выдает размер строки, которая прочиталась с помощью read (12 в моем случае). И зачем для printf передавать адрес этой переменной?
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
|||
| 05.09.2014, 10:28 | |||
|
Добавлено через 32 минуты
0
|
|||
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
|
| 05.09.2014, 10:33 [ТС] | |
|
кстати, про непечатный символ уже решил, были просто ошибки в коде, выше описал. Этот коммент был адресован к drfaust, т.к. зачем передавать адрес в pritnf?
0
|
|
|
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,780
|
|
| 05.09.2014, 10:37 | |
|
0
|
|
|
174 / 170 / 19
Регистрация: 31.08.2010
Сообщений: 575
|
||||||
| 05.09.2014, 10:45 [ТС] | ||||||
|
Да, скорее всего перепутал. Пример с cplusplus.com:
0
|
||||||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||
| 05.09.2014, 17:38 | ||
|
1
|
||
| 05.09.2014, 17:38 | |
|
Помогаю со студенческими работами здесь
8
После INSERT в datagridview выводится только первый символ Пожалуйста подскажите почему в конце строки выводится дополнительный символ % Выводится в файл только первый символ строки, остальные пустые
Не выводится Hello, World Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2.
Номеклатура. . .
|