Как считать число из файла c
Перейти к содержимому

Как считать число из файла c

Как считать число из файла c

Регистрация: 31.05.2010

Сообщений: 15

Как считать int-овское число из файла в переменную? (Си)

В файле, содержится такая информация:
10 10
20 20
30 30

Что нужно: нужно поочередно считывать 2 числа из строчки, осуществлять некоторую процедуру «put(х,у)» и переходить на следующую строчку.
Как это выглядит:

FILE *in; in=fopen("text.txt","r"); char s = getc(in); //эта переменная - просто индикатор окончания файла. int x,y; while(s!=EOF)

Ну вот и как?) Как считать 2 числа, разделенные пробелом, в 2 разные переменные?

С++ Как извлекать числа из файла в числовой массив для дальнейшей манипуляции над этими числами?

https://inf-ege.sdamgia.ru/problem?id=37348
По ссылке содержится само задание и подкрепленный файл в формате txt
Нужно срочно для ЕГЭ . Как извлекать числа из файла в числовой массив для дальнейшего использования этих чисел ? Без C-стайла ,пожалуйста . И ,возможно ,ли сделать так со статическим массивом ? Или все -таки только коллекции ? С использованием библиотеки fstream Нужно просто ответить как считывать числа в файл на языке C++ ,а не решение этой задачи .
Я новичок ,кроме массивов больше ничего не знаю: ни векторы ,ни коллекции , ни списки.
Если с массивом не возможно , а со списком(list) возможно ?

  • Вопрос задан более двух лет назад
  • 792 просмотра

5 комментариев

Простой 5 комментариев

Евгений Шатунов @MarkusD Куратор тега C++

Считать число из файла и записать его в переменную на Си

Есть файл, который содержит целое число и больше ничего, например, 312567. Пытаюсь считать из него данные и записать в переменную а для дальнейшего использования — ничего не получается,- уже несколько часов разные варианты использую. Может кто-то поможет с работающим примером на С, т.к. есть другой код на С, который это значение будет использовать? Буду рад помощи. Код такой:

#include // библиотека для вывода на экран int main(void) < int a; FILE *k = fopen("/home/pi/c/file1.txt", "r"); // файл из которого читаем значение fscanf(k,"%d%",a); fclose(k); printf("значение %d\n", a); >

Отслеживать

218k 15 15 золотых знаков 118 118 серебряных знаков 229 229 бронзовых знаков

задан 9 апр 2017 в 13:50

3 1 1 серебряный знак 3 3 бронзовых знака

Считать значения из input.txt и записать в output.txt на C++

Follow us on Twitter Follow us on rss

На олимпиадах по программированию для ввода данных в программу используют, как правило, файл с названием input.txt(содержит входные данные), а для вывода используется output.txt(содержит все выходные данные). В данной статье мы разберем, как нам брать данные из файла input.txt и записывать в output.txt.

Из input.txt в output.txt

Из input.txt в output.txt

Может показаться, что это неудобно, и проще всего организовать ввод данных через консоль, попросив об этом пользователя примерно таким сообщением «Введите значение N:». Однако, использование файлов input.txt и output.txt позволяет автоматизировать проверку ответа участника олимпиады, что в разы ускоряет подведение итогов.

Если Вы любите решать олимпиадные задачи, то Вам просто необходимо иметь шаблон такой программы, чтобы каждый раз не реализовывать её. Ежели Вы впервые столкнулись с этим, то мы сейчас разберем, как это всё делается.

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

Считывание и ввод данных из input.txt

Организуем ввод всех данных из файла input.txt в наши переменные и массивы. Я покажу, как считать разные типы данных: числа, строки, ряды чисел(для массива).

Итак, для начала создадим файл input.txt, откроем с помощью текстового редактора и заполним его различными значениями. Я разместил пару чисел на одной строке, одно число на следующей строке, 10 чисел еще на одной строке и строку текста на последней. Файл input.txt содержит следующее:

15 20 10 2 3 4 5 6 7 8 19 900001 123 Nicknixer.ru

Теперь напишем программу, которая будет брать все эти значения и заносить в нужные нам переменные.

Допустим, мне нужно занести первые два числа на первой строке(15 и 20) в переменные a и b соответственно.

Значение числа на второй строке(10) в переменную N, и при этом, договоримся, что на второй строке число указывает на количество чисел, размещенных на третей строке. То есть на третей строке у нас N чисел через пробел, их мы будем заносить в массив.

И, наконец, на четвёртой строке файла у нас расположено слово, его мы тоже занесем в переменную.

Теперь напишем программу, которая считает это всё и поместит в переменные, с которыми мы сможем работать. Я буду размещать код поэтапно, чтобы было понятно, что и где добавилось. Для начала Вы можете узнать как считывать из файла в C++.

Подключим необходимые заголовки

#include #include #include

int a,b,N;

Откроем файл input.txt для чтения

ifstream fin("input.txt");

Считаем первые два числа из файла input.txt в переменные a и b

fin >> a; fin >> b;

Разделителем чисел в файле служат пробелы. Поэтому просто выводим поток из fin прямо в переменные по порядку.

Считаем число со второй строчки в переменную N

fin >> N;

Указатель положения в файле сместился автоматически на следующую строчку и считал число.

То есть числа можно разделять пробелами или переносами строк, и просто выводить информацию по порядку из файла в соответствующие переменные.

Теперь определяем массив с размером N и вносим в него следующие 10 чисел из файла

int mass[N]; for(int i=0;i> mass[i]; >

В результате массив mass[] заполнился следующими 10-ю числами из файла(числами с третьей строки).

И теперь считаем следующую за всем этим слово

string msg; fin >> msg;

Теперь выведем значения всех переменных в консоль

cout cout Полученные значения из файла

Полученные значения из файла

Весь листинг написанной нами программы для чтения из файла и записи в переменные с последующим выводом их значений:

#include #include #include using namespace std; int main() < int a,b,N; ifstream fin("input.txt"); fin >> a; fin >> b; fin >> N; int mass[N]; for(int i=0;i> mass[i]; > string msg; fin >> msg; cout cout #include #include #include

Определяем переменные и заносим в них наши значения, которые мы запишем в файл.

int a; string msg; a = 150; msg = "Our string";

Откроем файл output.txt для записи.

ofstream fin("output.txt");

Теперь, аналогично с обычным выводом в консоль, передаем в поток файла наши данные.

fin.close();

Теперь компилируем и запускаем программу, после чего открываем файл output.txt с помощью текстового редактора и видим записанные в него значения наших переменных, размещенных на разных строках.

Содержимое файла output.txt

Содержимое файла output.txt

Весь код программы для записи переменных в файл:

#include #include #include using namespace std; int main()

Вот мы и разобрались с выводом данных в файл output.txt.

Шаблон считывания данных из input.txt и записи в файл output.txt

Теперь создадим шаблон программы для использования в будущих решениях олимпиадных задач, чтобы каждый раз не писать один и тот же код для получения данных из input.txt и записи в output.txt.

Синтезируем две наши написанные программы и получим следующий код.

#include using namespace std; int main() < ifstream fin("input.txt"); ofstream fout("output.txt"); // Здесь размещаем алгоритмы fin.close(); fout.close(); return 0; >

Вот и получился шаблон. Проверим его.

Допустим, нам нужно взять первое число из файла input.txt и записать его в файл output.txt.

Для этого просто определяем числовую переменную, считываем данные из потока fin, и выводим значение переменной в поток fout. Всё просто, вот так:

int temp; fin >> temp; fout  

В файле input.txt у меня записано число 15, после запуска программы в файле output.txt появилось число 15. Всё работает, всё просто.

#include using namespace std; int main() < ifstream fin("input.txt"); ofstream fout("output.txt"); int temp; // Определяем переменную fin >> temp; // Получаем данные из файла input.txt fout 

Итоги

Итак, мы научились получать данные из файла и записывать их в другой файл. Создали шаблон для будущих решений олимпиадных задач. Кстати, если вы решаете задачи по программированию на языке C++, то загляните в раздел с решениями задач. Если у Вас остались вопросы, то задавайте их в комментариях.

Для вас это может быть интересно:

Раздел: Программирование Метки: C++, fstream, input, output, файлы, чтение из файла

Считать значения из input.txt и записать в output.txt на C++ : 5 комментариев

  1. Николай 06.11.2016 То чувство, когда с этим возишься дольше, чем с решением самой задачи.:)
    Пример шаблона считывания и записи хороший, сохраню себе. Спасибо за идею.
  1. Stifler 28.10.2020 Есть смысл построчно записывать в массив

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

  • Qt (4)
  • SEO (5)
  • Администрирование (4)
  • Алгоритмы (6)
  • Заработок (1)
  • Операционные системы (4)
  • Ответы (2)
  • Программирование (23)
  • Сайтостроительство (11)
  • Продвинутая работа с массивами PHP 05.08.2021
  • Использование SSH: исполнение, выгрузка и загрузка файлов по SSH 02.08.2021
  • Краткий гайд по командам Composer для PHP 26.01.2021
  • Как найти сумму и произведение элементов массива на C++ 09.12.2020
  • Как вывести неповторяющиеся элементы массива на C/C++ 09.12.2020
  • Чынгыз к записи Как найти сумму и произведение элементов массива на C++
  • Чынгыз к записи Как найти сумму и произведение элементов массива на C++
  • Di к записи Создание Excel документа на PHP (генерация .xls файлов)
  • Илья к записи Русские символы(буквы) при вводе/выводе в консоль на C++
  • LedsHack к записи Найти максимальный и минимальный элемент массива на C++

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *