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

Чтение текста из файла [VC++] - C++

Восстановить пароль Регистрация
 
Maxsis
 Аватар для Maxsis
5 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 157
30.06.2015, 22:41     Чтение текста из файла [VC++] #1
Здравствуйте, уважаемые знатоки)
С толкнулся с проблемой чтения текста из файла (вроде бы задача легкая), но я буквально недавно начал изучать С++ (так как паскаль (аля делфи) порядком надоел своей загруженностью).

Вот... вообщем... задача
Прочитать все строки из файла proxy.txt (более 1500 строк)
(приложил файл к вопросу)

Вот, методом проб и ошибок написал код, но я явно вижу что код написан через .О.У(мой фирменный стиль) ))

Помогите мне исправить мои ошибки и дайте какой-нибудь совет по этому поводу)))
p.s. еще в коде ошибка, он пишет нет доступа к чтению файла(но это вероятно как раз из-за ошибок в написание самого кода).

В общем, помогите, пожалуйста))

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// MyfirstAppOnC.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <iomanip>
#include <stdio.h>
 
using namespace std;
 
 
int startparam() //Стартовые параметры
{
    setlocale(LC_ALL, "RUS");
    system("title Моя первая консольная программа");
    system("color 2");
    return 0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{ 
    startparam();
    /*  Подсчет строк в файле
    char *str = new char[1024];
    int i = 0;
    
    ifstream base("C:\\Users\\No-name\\Desktop\\proxy.txt");
    while (!base.eof())
    {
        base.getline(str, 1024, '\n');
        i++;
    }
    base.close();
    delete str;
    const int i2 = i;
    cout << i << '\n';
    */
 
//Построчный вывод и чтение
    const int i = 1000;
    int i2 = i;
    string bb[i];
 
    char a[25] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
 
    FILE *fp = fopen("C:\\Users\\No-name\\Desktop\\proxy.txt", "r+");
    for (; i2!=0; i2--)
    {
        if (fp != NULL)
        {
            fgets(a, i2, fp);
 
            bb[i2] = a;
            cout << "text[" << i2 << "] =" << a << endl;
            //system("pause");
        }
    }
 
 
    system("pause");
    return 0;
 
}
Вложения
Тип файла: rar proxy.rar (10.6 Кб, 0 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2015, 22:41     Чтение текста из файла [VC++]
Посмотрите здесь:

чтение/запись текста из файла C++
Чтение текста из файла и вывод на экран только тех предложений, которые не содержат запятых C++
Чтение из файла. Повторное чтение файла C++
Чтение текста их txt файла C++
C++ Чтение текста из файла
Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. C++
C++ Чтение файла GIF. Перевод текста в HEX. Декодирование GIF анимации
C++ Чтение текста из файла

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Maxsis
 Аватар для Maxsis
5 / 5 / 1
Регистрация: 10.06.2011
Сообщений: 157
30.06.2015, 22:52  [ТС]     Чтение текста из файла [VC++] #2
Исправил код, теперь работает, но в конце какой-то баг - в конце записи, тоесть 1-10 элементы массива записаны не правильно, а с остальными все нормально. (скриншот)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// MyfirstAppOnC.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <iomanip>
#include <stdio.h>
 
using namespace std;
 
 
int startparam() //Стартовые параметры
{
    setlocale(LC_ALL, "RUS");
    system("title Моя первая консольная программа");
    system("color 2");
    return 0;
}
 
int _tmain(int argc, _TCHAR* argv[])
{ 
    startparam();
    
    char *str = new char[1024];
    int i = 0;
    
    ifstream base("C:\\Users\\No-name\\Desktop\\proxy.txt");
    while (!base.eof())
    {
        base.getline(str, 1024, '\n');
        i++;
    }
    base.close();
    delete str;
    const int i2 = i;
    cout << i << '\n';
    
    string bb[2000];
 
    char a[30] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
 
    FILE *fp = fopen("C:\\Users\\No-name\\Desktop\\proxy.txt", "r+");
    for (; i!=0; i--)
    {
        if (fp != NULL)
        {
            fgets(a, i, fp);
 
            bb[i] = a;
            cout << "text[" << i << "] =" << a << endl;
            //system("pause");
        }
    }
 
 
    system("pause");
    return 0;
 
}
Миниатюры
Чтение текста из файла [VC++]  
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
30.06.2015, 23:12     Чтение текста из файла [VC++] #3
Зачем тут смешаны Си и С++? Если делать просто вывод на консоль строк из файла, то зачем второй цикл чтения, достаточно одного.

Добавлено через 4 минуты
Если строки нужно куда-то сохранить, а потом вывести, то используй vector <string>.
Yandex
Объявления
30.06.2015, 23:12     Чтение текста из файла [VC++]
Ответ Создать тему
Опции темы

Текущее время: 15:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru