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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 14:42     Ввод из файла символьного массива #1
Как ввести вот такой символьный массив из файла ?

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 А а
и т. д.

Почему ? Кто может объяснить ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 15:14  [ТС]     Ввод из файла символьного массива #3
Объясните тогда, что Вы изменили в программе, и где разместили в компьютере текстовый файл с символами, откуда производился ввод ?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.11.2011, 15:31     Ввод из файла символьного массива #4
sergey.shuvalov, В папке с прогой. Ничего не менял.
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 15:40  [ТС]     Ввод из файла символьного массива #5
А в какой директории разместили текстовый файл ?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.11.2011, 15:42     Ввод из файла символьного массива #6
sergey.shuvalov, Читаем выше.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 15:48     Ввод из файла символьного массива #7
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
Почему ? Кто может объяснить ?
У тебя текстовый файл точно текстовый ASCI, а не UTF8?
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 16:01  [ТС]     Ввод из файла символьного массива #8
У меня записан файл в текстовом файле, в свойствах указывает Тип фала: Текстовый документ (.txt)
В какие папки я его только не пихал, всё равно ничего не выходит. Просветите.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 16:04     Ввод из файла символьного массива #9
В настройках проекта, на вкладке отладки, укажи рабочую директорию, куда ехе кладётся. И туда же скопируй тхт файл. Ну и после открытия проверяй, что файл действительно открылся. А так уон не находится и у тебя мусор попадает.
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 16:16  [ТС]     Ввод из файла символьного массива #10
А как проверить, что он открылся ?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 16:21     Ввод из файла символьного массива #11
C++
1
f.is_open() == "Угу"
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 16:45  [ТС]     Ввод из файла символьного массива #12
А куда это вписывать, в программу или после её выполнеия в окно DOS вписать и нажать интер. Если в программу, то в какую строчку ?

Добавлено через 5 минут
А если не открывается, то почему ?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
09.11.2011, 16:49     Ввод из файла символьного массива #13
В код. Сразу после открытия файла, проверить, открылся он или нет.
Не открывается, потому что не нашёлся.
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
09.11.2011, 16:58  [ТС]     Ввод из файла символьного массива #14
Я сейчас из имени, а он у меня назывался array.txt, убрал слово .txt и всё заработало. Смотрю в программной папке его свойства, и вижу array.txt.txt Переименовал в просто array и всё заработало. Большое спасибо за понимание моей ошибки.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
10.11.2011, 03:06     Ввод из файла символьного массива #15
это в винде так принято: ты хочешь назвать файл, как хочешь, а тебе навязывают расширение
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.11.2011, 06:00     Ввод из файла символьного массива #16
Цитата Сообщение от accept Посмотреть сообщение
это в винде так принято
Это так принято в винде у пользователей, у которых стоит галка "скрывать расширения файлов". Для всех остальных пользователей всё нормально переименовывается.)
accept
10.11.2011, 06:29
  #17

Не по теме:

Цитата Сообщение от Deviaphan
Это так принято в винде у пользователей, у которых стоит галка "скрывать расширения файлов".
так она стоит изначально
в 98, вроде, ещё можно было установить винду нормально и возможность там эта была
но несмотря на множество вирусов, маскирующихся под картинки (имеющих соответствующую иконку), эти всё равно ставят
мало того, попробуй переименовать файл потом из .txt в другой формат, не выставляя "показывать расширения"
для этого нужно cmd.exe запускать

Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
10.11.2011, 06:36     Ввод из файла символьного массива #18
Цитата Сообщение от accept Посмотреть сообщение
не выставляя "показывать расширения"
Мне эта проблема не ведома. Сразу же ставлю отображение скрытых и системных файлов и отображение расширения.
И использую тру-файлменеджер, вместо эксплорэра.)

Добавлено через 1 минуту
А некоторые избавляются от этой проблемы, не используя виндоус.
accept
10.11.2011, 06:40
  #19

Не по теме:

Цитата Сообщение от Deviaphan
Сразу же ставлю отображение скрытых и системных файлов и отображение расширения.
в каждой винде такое делать - жирно
мало того, что платишь, так ещё и подрабатываешь потом

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2011, 06:45     Ввод из файла символьного массива
Еще ссылки по теме:

C++ сортировка одномерного символьного массива из файла
C++ Ввод массива из текстового файла
C++ Чтение символьного массива из файла и вывод на экран

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

Или воспользуйтесь поиском по форуму:
Deviaphan
10.11.2011, 06:45     Ввод из файла символьного массива
  #20

Не по теме:

Ну так потому и МастДай! .)
Пока не допилишь, ни пользоваться нормально нельзя, ни производительности толком нет. Прям как линукс, только с МастДайными выкрутасами.)
А программисты мучайтся, имена файлов угадывай...

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

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