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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
#1

Ввод из файла символьного массива - C++

09.11.2011, 14:42. Просмотров 1158. Ответов 20
Метки нет (Все метки)

Как ввести вот такой символьный массив из файла ?

2X11
X121
12X1
1112
2222
XXX2
X21X
1X2X
21XX

Сделал такую программу


//Как заполнить двумерный массив из файла

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
#include <iostream>
#include <fstream>
#include <iomanip>
 
using namespace std;
 
//функция выводит массив на экран
void printArray(char array[][4], const int row, const int column)
{
    cout << "Poluchennyj massiv\n";
    
    for(int i = 0; i < row; i++)
    {
        for(int j = 0; j < column; j++)
            cout << setw(4) << array[i][j];
        
        cout << endl;
    }
}
   
int main()
{
    const int row = 9, column = 4;
    char array[row][column];
    
    //создаем объект класса ifstream
    //и сразу указываем файл, с которого будем читать
    ifstream f("array.txt");
    
    //читаем файл и прочитанное запоминаем в массив
    for(int i = 0; i < row; i++)
        for(int j = 0; j < column; j++)
            f >> array[i][j];
    
    //печатаем полученный заполненный массив
    printArray(array, row, column);
    
    return 0;
}
а она выдаёт:
a a a a
Ё 4 А а
и т. д.

Почему ? Кто может объяснить ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2011, 14:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод из файла символьного массива (C++):

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

Ввод\вывод символьного массива(оператор gets) - C++
Как работает оператор gets? Почему в данной программе не происходит считывания на первом шаге цикла (при i=0) ? #include &lt;stdio.h&gt; ...

Ввод-сотрировка-вывод символьного массива - C++
Мне нужно сделать сортировку символьного массива методом Вставки и Пузырька. Я сделал это тока для цифр, помогите переделать. #include...

сортировка одномерного символьного массива из файла - C++
//Пузырьковая сортировка по убыванию (прямое направление) вот прога. считывает и выводит на экран буквы из файла &quot;in.txt&quot; но...

Чтение символьного массива из файла и вывод на экран - C++
Задание было: прочитать из файла символьный массив и обработать его. Т.к. нам чтение из файла пока не давали, пришлось искать самому. ...

Ввод массива из файла - C++
Хелп плиз!!! Задача: &quot;Нужно создать небольшую базу данных. Нужно чтобы массив задавался из текстового файла. В файле должны быть данные для...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
09.11.2011, 14:58 #2
У меня все окей. Файл :

Код
2X11
X121
12X1
1112
2222
XXX2
X21X
1X2X
21XX
Код
forever@pterois:~/My_pro1/cpp_pro$ g++ -o file file.cpp
forever@pterois:~/My_pro1/cpp_pro$ ./file 
Poluchennyj massiv
   2   X   1   1
   X   1   2   1
   1   2   X   1
   1   1   1   2
   2   2   2   2
   X   X   X   2
   X   2   1   X
   1   X   2   X
   2   1   X   X
0
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
09.11.2011, 15:14  [ТС] #3
Объясните тогда, что Вы изменили в программе, и где разместили в компьютере текстовый файл с символами, откуда производился ввод ?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
09.11.2011, 15:31 #4
sergey.shuvalov, В папке с прогой. Ничего не менял.
0
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
09.11.2011, 15:40  [ТС] #5
А в какой директории разместили текстовый файл ?
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,542
Завершенные тесты: 3
09.11.2011, 15:42 #6
sergey.shuvalov, Читаем выше.
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 15:48 #7
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Почему ? Кто может объяснить ?
У тебя текстовый файл точно текстовый ASCI, а не UTF8?
0
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
09.11.2011, 16:01  [ТС] #8
У меня записан файл в текстовом файле, в свойствах указывает Тип фала: Текстовый документ (.txt)
В какие папки я его только не пихал, всё равно ничего не выходит. Просветите.
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 16:04 #9
В настройках проекта, на вкладке отладки, укажи рабочую директорию, куда ехе кладётся. И туда же скопируй тхт файл. Ну и после открытия проверяй, что файл действительно открылся. А так уон не находится и у тебя мусор попадает.
0
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
09.11.2011, 16:16  [ТС] #10
А как проверить, что он открылся ?
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 16:21 #11
C++
1
f.is_open() == "Угу"
0
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
09.11.2011, 16:45  [ТС] #12
А куда это вписывать, в программу или после её выполнеия в окно DOS вписать и нажать интер. Если в программу, то в какую строчку ?

Добавлено через 5 минут
А если не открывается, то почему ?
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 16:49 #13
В код. Сразу после открытия файла, проверить, открылся он или нет.
Не открывается, потому что не нашёлся.
0
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 268
09.11.2011, 16:58  [ТС] #14
Я сейчас из имени, а он у меня назывался array.txt, убрал слово .txt и всё заработало. Смотрю в программной папке его свойства, и вижу array.txt.txt Переименовал в просто array и всё заработало. Большое спасибо за понимание моей ошибки.
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
10.11.2011, 03:06 #15
это в винде так принято: ты хочешь назвать файл, как хочешь, а тебе навязывают расширение
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2011, 03:06
Привет! Вот еще темы с ответами:

Ввод, вывод массива из файла - C++
Всем привет. Прошу помочь разобраться с ошибками. Код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include...

Ввод двумерного массива из файла (Си-only) - C++
Дорогие программисты! Помогите начинающему программисту на Си. Есть такая задача (only Си, Си ++ не катит): 1 дан файт (*.txt) в...

Ввод массива из текстового файла - C++
Нужно ввести одномерный массив целых чисел из текстового файла. Напишите, пожалуйста, код этой программы (желательно с пояснениями).

Ввод двумерного массива из файла - C++
#include &quot;stdafx.h&quot; #include &lt;stack&gt; #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; #include &lt;locale&gt; const int...


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

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

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