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

Обработка .txt кодировка ANSI и UTF-8 (буква "я" в ANSI воспринимается как EOF) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Непонятный вывод http://www.cyberforum.ru/cpp-beginners/thread330388.html
У меня есть следующий код функции на С++ void CursorPosition(HWND hWnd, int xPosition, int yPosition, int xCell, int yCell, int sx, int sy) { int oneStepOnX = sx/8; int oneStepOnY = sy/8; ...
C++ Преобразования типов Почему можно присваивать символьной переменной типа char целые числа? И наоборот, целочисленному типу int можно присваивать символы. Происходит ли преобразование типа или это обычное явление когда в... http://www.cyberforum.ru/cpp-beginners/thread330385.html
__cdecl and __stdcall C++
Доброго времени суток! При соглашении вызова __cdecl стек очищает вызывающая функция, при __stdcall - вызываемая. В чем это проявляется и что это означает? Ну то есть я понимаю, что стек надо...
C++ Преобразуйте программу на язык С++
Кто может сделать перевод на С Pascala на С++ эту программу program MaxElem; uses Crt; type Mas = array of Real; var A: Mas; i, N: Integer; k: Integer; Amax: Real; begin СlrScr;
C++ Конструктор шаблона класса http://www.cyberforum.ru/cpp-beginners/thread330310.html
Добрый день. Столкнулся с проблемой: имеется код template <class L> class smthing { private: ..... public: smthing(); ..... };
C++ Работа с doc файлами Всем привет. Нужна помощь по работе с doc файлами. Буду признателен за ссылки, советы и.т.д. Интересует пример: В doc файле есть текст и допольнительно . Надо что-бы программа заменяла на... подробнее

Показать сообщение отдельно
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.07.2011, 09:46
Цитата Сообщение от zuq
Используй функцию feof(). Например цикл while(!feof(fp)) будет итерироваться до конца файла
это неправильно
если будет ошибка чтения файла, конец файла никогда не наступит

Цитата Сообщение от grizlik78
Во-первых, char по-умолчанию почти везде знаковый. Мало где можно встретить беззнаковый char по-умолчанию.
надо расчитывать, что он знаковый или беззнаковый
так же, как int - это short или long

Цитата Сообщение от Bers
странно... ANSI же 1 байтовый. Не нужен для него никакой int
EOF - это число, которое меньше нуля
C89
4.9 INPUT/OUTPUT <stdio.h>

...

EOF

which expands to a negative integral constant expression that is
returned by several functions to indicate end-of-file ,that is, no
more input from a stream;
коды символов лежат в диапазоне от 0 до 255
-1 - 11111111
255 - 11111111

даже если char равен unsigned char, то:
-1 - 11111111
255 - 11111111

поэтому делается int, в котором:
-1 - 11111111111111111111111111111111
255 - 00000000000000000000000011111111

Цитата Сообщение от Neonjke
fopen прекрасно находит этот файл как и в моем, так и в Вашем варианте
бекслеш используется для экранирования, следовательно, будет попытка обработать экранирующую последовательность \O, которой не существует
никаких манипуляций с неявным преобразованием \O в \\O не должно быть

C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main(void)
{
    printf("\O");
    return 0;
}
Код
[guest@localhost tests]$ .ansi t.c -o t
t.c: В функции ‘main’:
t.c:6:12: предупреждение: unknown escape sequence: '\O'
[guest@localhost tests]$
C89
A.6.2 Undefined behavior

...

* An unspecified escape sequence is encountered in a character
constant or a string literal ($3.1.3.4).
Добавлено через 17 минут
в C99 пишут, что маленький буквы зарезервированы для будущих стандартов языка
а другие символы, отличные от стандартных и зарезервированных, могут использоваться в расширениях

то есть из этого следует, что даже если компилятор использовал бы С99, то он не имел бы права использовать в fopen пути вида c:\abc
если у тебя прокатывает один бекслеш (не слеш, слеши там можно применять), то он либо запрещает имена файлов маленькими буквами, либо нарушает стандарт языка

Visual Studio 2010 использует C89, в котором любая нестандартная экранирующая последовательность - undefined behavior
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru