Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 10.10.2019
Сообщений: 13

Построчное чтение файла в Си (linux)

11.12.2019, 18:48. Показов 2374. Ответов 1
Метки си (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста, нужно последовательно преобразовывать строки файла в числа (желательно unsigned short) и записывать в массив. Ниже мой текущий нерабочий код:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 FILE * lMap;
 if ((lMap = fopen(fileName, "r")) == NULL) puts ("\e[1;1H\e[2K This file is not exist!"); else
 {
    lMap  = fopen(fileName, "r");
    fgets (nStr, sizeof (nStr), lMap); n = atoi(nStr); // преобразование в целое число здесь работает корректно
  
    for (unsigned short i = 0; i < n; i++)
    {
        if (i < n/2) { fgets (xStr, 3, lMap); itemX[i] = atoi(xStr); } else // здесь и ниже строки преобразуются в 0,
        if (i < n) { fgets (yStr, 3, lMap); itemY[i] = atoi(yStr); }          // хотя в файле указаны иные числа
 
    }
    fclose(lMap);
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2019, 18:48
Ответы с готовыми решениями:

Построчное чтение файла
Помогите пожалуйста, не могу доделать программу, точнее я её сделала но не так как бы мне хотелось. Вот код программы(прога рабочая) ...

Построчное чтение из файла
такая проблема есть фаил в нем записана информация: 10 Петров А.Л. Сон 1991 4 51 Сидоров В.О. Луна 1970 5 ....... мне нужно считать...

Построчное чтение из файла
Помогите пожалуйста, не могу доделать программу, точнее я её сделала но не так как бы мне хотелось. Вот код программы(прога рабочая) ...

1
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,922
12.12.2019, 12:57
Лучший ответ Сообщение было отмечено Sid_Pic как решение

Решение

Зачем вы открываете один и тот же файл два раза?
Цитата Сообщение от Sid_Pic Посмотреть сообщение
\e[1;1H\e[2
это похоже на раскрашивание консоли. Тогда почему не восстанавливаете дефолтный цвет? Да и вообще, такие вещи лучше выносить в макроопределения.
Цитата Сообщение от Sid_Pic Посмотреть сообщение
желательно unsigned short
Наверное, все же в uint16_t или что-то подобное. Потому что сам по себе unsigned short в отрыве от платформы означает просто целочисленный тип, не лучше и не хуже unsigned int.
Цитата Сообщение от Sid_Pic Посмотреть сообщение
fgets (xStr, 3, lMap
Вы уверены что в каждой строке не больше 2 символов? Вы можете это гарантировать? Потому что если нет, ваш код работать не будет.
Цитата Сообщение от Sid_Pic Посмотреть сообщение
itemX[i] = atoi(xStr);
Если что-то не работает, надо добавить отладочный вывод чтобы понять на каком именно этапе происходит сбой. Правильно ли считывается строка? Правильно ли она преобразуется в число?
Цитата Сообщение от Sid_Pic Посмотреть сообщение
fgets (xStr
fgets (yStr
Переменные xStr и yStr похожи на временный буфер для строки. Зачем заводить две переменные, когда достаточно и одной.
Не говоря уж о том, что обычный fscanf справится вообще без дополнительных переменных.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.12.2019, 12:57
Помогаю со студенческими работами здесь

построчное чтение файла
Доброе утро! Мне требуется помощь в следующем у меня есть файл, примерно следующего вида: Имя базы1|c:\work\base1\ Имя...

Построчное чтение из файла
Необходимо построчно прочитать данные из файла, из разобрать их по переменным. Образец данных в файле: 4 Абрамович И.П. 284-84-15 ...

Построчное чтение из файла
Мне требовалось следующее: реализовать чтение из файла построчно и записывать каждую строчку в три разные переменные(файл по умолчанию со...

Построчное чтение из файла
Вечер добрый! С с++ только знакомлюсь. Нужно обработать файл. Построчно считываю данные, и обрабатываю их. Но вот ведь какая...

Построчное чтение из файла
Помогите, не могу разобраться с построчным чтением с файла. Т.е. у меня есть текстовый файл в котором множество строк. Мне нежно прочитать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru