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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
#1

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

13.10.2012, 10:11. Просмотров 1225. Ответов 4
Метки нет (Все метки)

Да вопрос боян, но у меня почему-то все символы программа считывает, как один и тот же символ.
Дайте пожалуйста код, который считает в char'овский массив весь файл (в файле много строк)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2012, 10:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание из файла в char' овский массив (C++):

Считывание текста из файла text в массив char - C++
Такая проблема, есть файл с текстом There are many big and small libraries everywhere in our country. They have millions of books in...

Считывание в массив char с консоли - C++
не выходит считать массив чаров, после перевода строки консоль не закрывается, а просто переходит на др. строку и никак не реагирует, либо...

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

Считывание из файла в char - при выводе выводится лишнее - C++
Считываю из файла в строку типа char, если у меня в строке меньше 16 символов, то при выводе выводится какой-то мусор, наверное связано с...

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

Считывание из файла в массив - C++
Задание: Дан в файл в котором записана матрица вершин, необходимых для создания 3D фигуры. Написать программу, которая считывает данную...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.10.2012, 10:14 #2
Покажи свой код.
Anatoliy Coder
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
13.10.2012, 21:23  [ТС] #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
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.10.2012, 21:57 #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
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 75
13.10.2012, 22:26  [ТС] #5
Спасибо, что подсказали, сейчас буду пробовать.
P.S. Все получилось. Действительно оказалось, что файла небыло в нужном каталоге.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2012, 22:26
Привет! Вот еще темы с ответами:

Считывание из файла в массив - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { FILE*...

Считывание в массив с файла - C++
Как считать числа из файла в массив, но сделать это со второй строки? К примеру: 6 10 12 63 25 23 И мне нужно просто пропустить...

Считывание файла в массив - C++
Здравствуйте Мне была поставлена задача сделать рандомный выбор строк из файла. И я не знаю как считать из файла строки в массив что бы к...

Считывание из файла в двумерный массив - C++
Здравствуйте. Подскажите пожалуйста (если есть уже решение), как считать из файла в двумерный массив.


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

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

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