Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 00:08   #1
mzelenyy
 
Регистрация: 11.06.2010
Сообщений: 5
По умолчанию Как в текстовом файле распознать символ перевода строки?

Как во время чтения файла распознать символ перевода строки?
Например, я думал так:
ifstream f("1.txt");
char s;
for(;!f.eof();{
f>>s;
if(s=='13').......
}

но так видит только строчные символы...
mzelenyy вне форума Ответить с цитированием
Старый 12.06.2010, 00:17   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Нет, не так. Во-первых, если уж на то пошло, то
Код:
char s = f.get();
if(s == 13)... // s == 0xD // s == '\r'
во-вторых не на всех платформах 13 - перевод строки, в юниксах, например, за перевод строки считается десятый символ. И сравнивать нужно именно с ним, ибо рантайм переводит все способы переводов строк к нему.
Код:
if(s == '\n')..
netrino вне форума Ответить с цитированием
Старый 12.06.2010, 10:16   #3
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

В винде перевод строки - это 2 символа подряд: 10 и 13.
pu4koff вне форума Ответить с цитированием
Старый 12.06.2010, 10:35   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Только наоборот - сначало 13, а потом 10...
Можно тест провести:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; s: string;
begin
s:='';
for i:=1 to length(memo1.text) do
      case memo1.text[i] of
            #13:
               s:=s+'#13';
            #10:
               s:=s+'#10';
            else
               s:=s+memo1.text[i];
            end;
memo1.text:=s;
end;
А совсем подробно в Википедии...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 12.06.2010, 11:30   #5
mzelenyy
 
Регистрация: 11.06.2010
Сообщений: 5
По умолчанию Всем спасибо!

В результате заработал вот такой вариант:
Код:
	ifstream f("1.txt");
	for(;!f.eof();){
	char s = f.get();
	if(s == '\n') //s==10
        ............
mzelenyy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строки в текстовом файле GreBer Помощь студентам 2 29.11.2009 21:17
Пустые строки в текстовом файле Dekker Помощь студентам 1 08.05.2009 16:31
Поиск строки в текстовом файле Black_Ak24 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 24.01.2009 20:30
как присвоить char'у символ перевода строки? Retiz Помощь студентам 6 06.04.2008 00:05
Как поменять строки в текстовом файле местами _ares_ Помощь студентам 8 13.11.2007 02:14