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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 43, средняя оценка - 4.79
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
#1

Чтение файла построчно - C++

21.02.2012, 12:53. Просмотров 5281. Ответов 9
Метки нет (Все метки)

Вот у меня есть файл "cmd.ini"
в нем записан текст построчно
и мне надо с каждой строкой выполнить это код "g_Engine.pfnAddCommand( line, NOP );"
где 'line' это каждая строка файла.

я пробывал так:

C++
1
2
fgets(line,200, fp);
g_Engine.pfnAddCommand( line, NOP );
но код только выполняется с последней строкой файла, а мне надо со всеми стоками .
уже 4 день ломаю голову, HELP! PLS.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2012, 12:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение файла построчно (C++):

Чтение файла построчно - C++
Требуется занести в массивы строчки. В каждый массив своя строчка. Для этого решил использовать массив объектов. #include<iostream> ...

Чтение из файла чисел построчно - C++
Всем добрый день! У меня следующий вопрос: есть текстовый файл, в который записаны числа типа double, причем в каждой строчке количество...

Открываются 2 текстовых файла, сложить построчно числа из 1 и 2 файла, сумму вывести в третий файл построчно - C++
Товарищи, помогите с кодом пожалуйста.=( 1. Создать текстовый файл и сохранить в нём текст из 10..100 слов. Слова в тексте разделены...

Считывание из файла построчно и запись в файл построчно getline () - C++
# include <iostream> # include <vector> # include <fstream> # include <string> using namespace std; int main () { ...

Чтение из .txt построчно (ifstream) - C++
Здравствуйте, возникли некоторые проблемы с ifstream. Не могу сделать чтение из .тхт файла построчно, да и просто не получается. Вот мой...

Чтение построчно выдает страшный ерор - C++
Очередная мольба о помощи. Вроде бы все написано тру, но выдает страшнейший еррор... Помогите великопрошающе найти и исправить его. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
21.02.2012, 12:58 #2
C++
1
2
3
4
5
6
7
8
fgets(line,200, fp);
line[strlen(line)-1]=0;
do
{
       g_Engine.pfnAddCommand( line, NOP );
       line[strlen(line)-1]=0;
       fgets(line,200, fp);
}while(!feof(fp));
Вконце строки остается символ перевода строки.
Чтобы его отбросить можно делаем так
line[strlen(line)-1]=0;
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
21.02.2012, 13:10  [ТС] #3
если поможет то дам спасибку, щяс за тестим

Добавлено через 3 минуты

серавно последнею читает, уже не знаю чё делать ?
0
zss
Модератор
Эксперт С++
6382 / 5947 / 1927
Регистрация: 18.12.2011
Сообщений: 15,264
Завершенные тесты: 1
21.02.2012, 13:12 #4
Исправьте ошибку надо
C++
1
line[strlen(line)-1]=0;
Добавлено через 1 минуту
А может дело в том, что надо дождаться выполнения очередной команды
g_Engine.pfnAddCommand( line, NOP );
а потом только выполнять следующую?
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
21.02.2012, 13:14  [ТС] #5
я незнаю, но весь код выглядит у меня так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
char *line = new char;
FILE *fp = fopen("command.ini", "r");
if (NULL == fp)
{
    g_Engine.Con_Printf( "\n\n\n\t\t\t\t%s\n", g_szHackER );
}
while (!feof(fp))
{
    fgets(line,200, fp);
    line[strlen(line-1)]=0;
    g_Engine.pfnAddCommand( line, NOP );
}
fclose(fp);
0
-=ЮрА=-
Заблокирован
Автор FAQ
21.02.2012, 13:21 #6
_or_75, дай свой файл данных и тело функции g_Engine.pfnAddCommand(
мне надо знать как парсится строка внутри этой функции
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
21.02.2012, 13:25  [ТС] #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
_or_75, дай свой файл данных и тело функции g_Engine.pfnAddCommand(
мне надо знать как парсится строка внутри этой функции
C++
1
2
cl_enginefunc_t g_Engine;
int ( *pfnAddCommand )  ( char *cmd_name, void (*function)(void) );
вот всё это

p.s это dll всё
0
-=ЮрА=-
Заблокирован
Автор FAQ
21.02.2012, 14:15 #8
Лан я подумал - думаю ошибка в том что в строке могут идти отдельные токены(т.е. команды)
Получается так строка: команда1 команда2 команда3... командаN и возможно внутренний парсер функции работает именно с последним токеном, сейчас накидаю код отпишешь о результатах теста...

Добавлено через 4 минуты
_or_75, попробуй вот так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char delim[] = " ,.?!\\:;";//
char *cmd;
char line[256];
while(!feof(f))
{
    if(!fgets(line,256,f))
        break;
    else
    {
        cmd = strtok(line,delim);
        while(cmd)
        {
            g_Engine.pfnAddCommand(cmd, NOP);
            cmd = strtok(NULL,delim);
        }
    }
}
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
21.02.2012, 15:38  [ТС] #9
не ничёго, неполучяется
0
-=ЮрА=-
21.02.2012, 16:40     Чтение файла построчно
  #10

Не по теме:

_or_75, выложи свой файл из которого чтение делаешь, возможно там двоичный файл или ещё что. Сложно вот так сидя у себя за компом представить что там у тебя и как...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2012, 16:40
Привет! Вот еще темы с ответами:

Считывания файла построчно - C++
Добрый день, требуется организовать построчное считывания файла. Т.е. есть массив строк, каждое новое слово(они расположены построчно) - в...

Считывание из файла построчно - C++
В текстовом файле содержатся целочисленные строки. Как считать каждую строку в отдельный массив? Всего 6 строк, но каждую строку в новый...

Построчно считать массив из файла - C++
имеется файл 1 2 3 4 5 6 3 4 6 8 3 1 2 5 7 9 0 5 и надо что бы каждая строка записалась в отдельный массив, типо так a=1 2 3 4 5...

Распечатать построчно содержимое файла - C++
Привет, форумчане! Тяжёлые времена настигли меня, поэтому вынужден попросить вас о помощи :cry: Мне выдали такую задачу: Написать...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.02.2012, 16:40
Ответ Создать тему
Опции темы

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