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

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

Войти
Регистрация
Восстановить пароль
 
konstantine_
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 14
#1

Почему во время чтения из файла переменная row_i в цикле постоянно обнуляется? - C++

29.04.2014, 21:08. Просмотров 376. Ответов 4
Метки нет (Все метки)

Имеется следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main ()
{
char row[128];
int row_i=0;
char    time[14];
int         timeout;
char    client_address[15], result_codes[255];
unsigned long   bytes;
char    request_method[255], url[255], rfc931[255], hierarchy_code[255], type[255];
 
ifstream file;
 
file.open("file.txt",ios::in);
 
for (row_i=0; row_i<7; row_i++) {
 
    file    >> time >> timeout >> client_address \
                >> result_codes >> bytes >> request_method \
                >> url >> rfc931 >> hierarchy_code >> type;
 
    cout << time << " " << timeout << "\t" << client_address << "\t" \
            << result_codes << "\t" << bytes << "\t" << request_method \
            << "\t" << url << "\t" << rfc931 << "\t" << hierarchy_code \
            << "\t" << type << endl;
        
    cout << "row_i= " << row_i << endl;
    }
    
file.close();
 
return row_i;
}
$cat file.txt:
C++
1
2
3
4
5
6
7
8
9
10
11
12
1394781640.106 25137    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
1394781645.151 25165    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
1394781660.022 49   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
1394781660.022 47   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
1394781666.131 25160    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
1394781671.126 25155    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
1394781680.001 28   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
1394781680.001 26   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
1394781688.092 123  192.168.1.1 TCP_MISS/200    373 POST    [url]http://linuxforum.ru/misc.php?[/url]   -   HIER_DIRECT/188.64.170.124  text/html
1394781692.131 25158    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
1394781693.130 156  192.168.1.1 TCP_MISS/200    430 POST    [url]http://vk.com/al_im.php[/url]  -   HIER_DIRECT/87.240.131.120  text/plain
1394781697.127 25156    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
Вывод работы программы:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
konstantine@mgate1_0:01:07_> clang++ test_2.cpp
konstantine@mgate1_0:01:13_> ./a.out
1394781640.106 25137    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
row_i= 0
1394781645.151 25165    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 0
1394781660.022 49   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 0
1394781660.022 47   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 0
1394781666.131 25160    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
row_i= 0
1394781671.126 25155    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 0
1394781680.001 28   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 0
1394781680.001 26   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 0
1394781688.092 123  192.168.1.1 TCP_MISS/200    373 POST    [url]http://linuxforum.ru/misc.php?[/url]   -   HIER_DIRECT/188.64.170.124  text/html
row_i= 0
1394781692.131 25158    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
row_i= 0
1394781693.130 156  192.168.1.1 TCP_MISS/200    430 POST    [url]http://vk.com/al_im.php[/url]  -   HIER_DIRECT/87.240.131.120  text/plain
row_i= 0
1394781697.127 25156    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 0
1394781697.127 25156   192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 1
1394781697.127 25156   192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 2
1394781697.127 25156   192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 3
1394781697.127 25156   192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 4
1394781697.127 25156    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 5
1394781697.127 25156   192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 6
Вопрос: "Почему во время чтения из файла переменная row_i в цикле постоянно обнуляется?"

п.с. в обще хотелось бы time считывать сразу в unsigned int тип.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 21:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Почему во время чтения из файла переменная row_i в цикле постоянно обнуляется? (C++):

Почему в цикле do...while переменная a оказывается необъявленной? - C++
Почему в этом коде не while не проверяет переменную &quot;a&quot;? : #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;cstdio&gt; using...

Переменная произвольно обнуляется - C++
Здравствуйте. Есть класс: template&lt;const int k,const int n&gt; class GF { public: int F; // Массив многочленов. public: //...

Переменная не обнуляется до конца - C++
Добрый день! Мне необходимо написать программу для расчета функции и вывести все ее значения в таблицу. Коэффициенты функции, начальное и...

Переменная в классе сама обнуляется - C++
Сейчас начал изучать SFML и пишу мини-игру для закрепления. Но вопрос с SFML почти никак не связан, ибо такая проблема возникала и без SFML...

Как определить время чтения данных из файла в миллисекундах? - C++
Всем доброго времени суток. Помогите пожалуйста. Как определить время чтения данных из файла в миллисекундах?

Почему все обнуляется??? - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; // прототипы функций void input ( float , char); void raschet ( float , float ,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,228
Записей в блоге: 3
Завершенные тесты: 1
29.04.2014, 21:19 #2
я так понял это время: 1394781640.106 ???

Добавлено через 1 минуту
если это так, то
C++
1
char    time[14];
не достаточно для хранения и нулевой символ, записанный за пределы массива вполне может затирать row_i
zss
Модератор
Эксперт С++
6359 / 5923 / 1920
Регистрация: 18.12.2011
Сообщений: 15,224
Завершенные тесты: 1
29.04.2014, 21:20 #3
Начнем с того, что time в массив из 14 символов не влезет:
не забывайте, что при создании строки в нее дополнительно в конец записывается ноль.
Croessmah
Модератор
Эксперт CЭксперт С++
13134 / 7397 / 828
Регистрация: 27.09.2012
Сообщений: 18,228
Записей в блоге: 3
Завершенные тесты: 1
29.04.2014, 21:23 #4
так же и
C++
1
char    client_address[15], result_codes[255];
может быть не достаточно для хранения ip-адреса (111.111.111.111 - это 15 символов + завершающий '\0' и получается 16 символов всего)
konstantine_
0 / 0 / 0
Регистрация: 14.04.2014
Сообщений: 14
30.04.2014, 07:34  [ТС] #5
Странно это я учитывал как раз увеличив размерность массива на 1 с 13 до 14, но как видно забыл про точку ))

Благодарю вас после данного изменения всё стало на свои места:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
konstantine@mgate1_10:33:23_> clang++ test_2.cpp
konstantine@mgate1_10:33:28_> ./a.out
1394781640.106 25137    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
row_i= 0
1394781645.151 25165    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 1
1394781660.022 49   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 2
1394781660.022 47   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 3
1394781666.131 25160    192.168.1.1 TCP_MISS/200    388 POST    [url]http://q70.queuev4.vk.com/im431[/url]  -   HIER_DIRECT/87.240.134.71   text/javascript
row_i= 4
1394781671.126 25155    192.168.1.1 TCP_MISS/200    325 POST    [url]http://im36v4.vk.com/im3431[/url]  -   HIER_DIRECT/87.240.142.98   text/javascript
row_i= 5
1394781680.001 28   192.168.1.1 TCP_MISS/200    357 GET [url]http://adm.e2e4online.ru/client/postdata.php?[/url]    -   HIER_DIRECT/193.150.124.36  text/html
row_i= 6
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2014, 07:34
Привет! Вот еще темы с ответами:

Обнуляется переменная почему ? - Delphi FireMonkey
var user .. var// global _getObjectSet : Array_of_Vehicle; i:integer; ...... procedura 1 begin

Постоянно обнуляется BIOS - BIOS
Тему такую не нашла. Уже на нескольких материнках такое наблюдаю... После отключения от сети - обнуляется BIOS. Батарейку меняла,...

Обнуляется переменная - PHP
Ребята, в общем такая проблема. При нажатии кнопки ok формы у меня почему-то обнуляется переменная id, хотя в других action'ах все отлично....

Почему переменная SESSION все время пуста? - PHP
Вот такой вот код и переменная все время empty: &lt;?php extract($_POST); session_start(); if(empty($_SESSION)) { ...


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

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

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