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

Считывание из файла в char' овский массив - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Anatoliy Coder
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
13.10.2012, 10:11     Считывание из файла в char' овский массив #1
Да вопрос боян, но у меня почему-то все символы программа считывает, как один и тот же символ.
Дайте пожалуйста код, который считает в char'овский массив весь файл (в файле много строк)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
13.10.2012, 10:14     Считывание из файла в char' овский массив #2
Покажи свой код.
Anatoliy Coder
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
13.10.2012, 21:23  [ТС]     Считывание из файла в char' овский массив #3
Нет у меня уже своего кода я уже разные варианты из инета методом копипаста пробывал. Неполучается.
Если можно, то предложите мне ваш вариант пожалуйста.

Добавлено через 16 минут
Ну вот пример моей попытки, но он вместо нормального чтение все время выдает MMMMMMMMMMMM.......
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
 using namespace std;
int main()
{
    setlocale(LC_ALL,"");
    char str[1000];
    ifstream fail("object.obj", ifstream::in );
    int i;
    i = 0;
    while (i != 400)
    {
    fail.get(str[i]);
    cout << str[i];
i = i +1;
    }
  fail.close();
  system("pause");
 
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2012, 21:57     Считывание из файла в char' овский массив #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
#include <iostream>
#include <fstream>
using namespace std; 
 
int main()
{
    setlocale(0, "");
    
    ifstream f("file.txt", ios::binary);
 
    char *p = 0;
    if (!f.is_open()) cout << "Error!" << endl;
    else
    {
        f.seekg(0, ios::end);
        int n = f.tellg();
        f.seekg(0, ios::beg);
        
        char *p = new char[n];
        
        for (int i = 0; i < n; i++)
        {
            f.get(p[i]);
            cout << p[i];
        }
        
        f.close();
    }
    
    cout << endl;
    system("pause");
    return 0;
}
Добавлено через 7 минут
Ваш код, вообщем, рабочий. Скорее всего файл отсутсвует. С небольшими исправлениями:
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"");
    
    char str[1000];
    
    ifstream fail("object.obj");
    if (!fail.is_open()) cout << "Error!" << endl; // если файла нет
    
    else
    {
        int i;
        i = 0;
        while (i != 400)
        {
            fail.get(str[i]);
            cout << str[i];
            i++;
        }
  
        fail.close();
    }
  
  cout << endl;
  system("pause");
  return 0;
 }
Anatoliy Coder
 Аватар для Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
13.10.2012, 22:26  [ТС]     Считывание из файла в char' овский массив #5
Спасибо, что подсказали, сейчас буду пробовать.
P.S. Все получилось. Действительно оказалось, что файла небыло в нужном каталоге.
Yandex
Объявления
13.10.2012, 22:26     Считывание из файла в char' овский массив
Ответ Создать тему
Опции темы

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