Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
BubbaGump
0 / 0 / 0
Регистрация: 27.02.2016
Сообщений: 5
1

Чтение из файла в два массива int

27.02.2016, 13:05. Просмотров 248. Ответов 3

Есть текстовый *txt файл, в котором хранятся данные в следующем виде:

2, 56
34, 45
23, 83
1, 9


Пытаюсь считать этот файл в 2 int-овых массива (по колонке в каждый):

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
#include<stdio.h>
main() {
    FILE *coordsFile;
    int lineCounter = 1;
    int c;
    
    
    coordsFile = fopen("coords.txt", "r");
    while ( (c = fgetc(coordsFile)) != EOF) {
        if (c == '\n')
        lineCounter++;    //Считаю количство строк, чтобы понять, какого размера массив создавать.
    }
    fclose(coordsFile);
    printf("\n%d\n", lineCounter);
 
    
    int i = 0;
    int x[lineCounter+1];
    int y[lineCounter+1];
    
    coordsFile = fopen("coords.txt", "r");
    while (fscanf(file2, "%d%d", &x[i], &y[i]) != EOF){
        printf("%d, %d\n", x[i], y[i]);
        ++i;
    }
    fclose(coordsFile);
}
Во-первых, программа считывает не то, что нужно.
Во-вторых, программа не останавливается.

Подскажите, что не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2016, 13:05
Ответы с готовыми решениями:

Чтение из файла - последняя запись выводится два раза
Очень нужна помощь в написании функции на С++ У меня есть написанная функция Bus *Read_file(char...

Чтение файла в массив int**
Работаю в VS 2017. Не могу прочитать файл, который пробовал и в папку проекта, и в debug пихать....

Чтение int и float из файла
Ну вот опять - печатает в конце программы что-то невообразимое. В начале всё хорошо, а потом...

Чтение 6 чисел из файла в переменную int
Всем привет! Проблема следующая. Есть текстовый файл - &quot;K.txt&quot;, который содержит миллионы...

Чтение данных типа int из файла
Не могу сделать так, чтобы данные считывались с файла, уже всё голову сломал. import...

3
maksim32
67 / 45 / 26
Регистрация: 30.08.2012
Сообщений: 132
27.02.2016, 16:06 2
1. Переменная file2 отсутствует, видимо, имелась ввиду переменная coordsFile:
Цитата Сообщение от BubbaGump Посмотреть сообщение
while (fscanf(file2, "%d%d", &x[i], &y[i]) != EOF){
2. Для инициализации массива можно использовать только константные переменные, такое недопустимо:
Цитата Сообщение от BubbaGump Посмотреть сообщение
int x[lineCounter+1];
3. Если в файле числа расположены через запятую, то и в форматную строку scanf необходимо добавить этот разделитель, т.е. fscanf(hFile, "%d,%d", ...);

Добавлено через 19 минут
4. Когда число элементов массива на момент компиляции неопределено, для выделения массива используют динамическую память (см. malloc).
Если динамическую память использовать нежелательно, то можно сделать массив с заведомо большим количеством элементов.
1
BubbaGump
0 / 0 / 0
Регистрация: 27.02.2016
Сообщений: 5
27.02.2016, 16:51  [ТС] 3
Большое спасибо, дело было в запятой!

Добавлено через 1 минуту
Цитата Сообщение от maksim32 Посмотреть сообщение
2. Для инициализации массива можно использовать только константные переменные, такое недопустимо:
Сообщение от BubbaGump
int x[lineCounter+1];
Где можно почитать объяснение сему факту?
0
maksim32
67 / 45 / 26
Регистрация: 30.08.2012
Сообщений: 132
28.02.2016, 10:16 4
Например, тут: Динамические массивы в C++.

По определению в C статический массив объявляется так:
Код
<спецификация типа> <имя> [<константное выражение>];
<спецификация типа> <имя> [ ];
Существует и способ динамического выделения памяти в стеке, но это уже не для новичков:
Массивы произвольной длинны и динамическое выделение памяти на стеке
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2016, 10:16

Чтение из бинарного файла и преобразование строк в int
Всем доброго времени суток, столкнулся с такой вот проблемой. У меня есть бинарный файл со...

Чтение значений типа int из файла в двумерный массив
Я написал вот такой код: public void OpenArray() // Чтение файла { ...

Чтение символов из файла с чередованием по два
@echo on set ff=-2 :start for /f &quot;&quot; %%p in (%~dpn0.txt) do ( set ff+=2 set fe=%%p...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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