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

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

  • автор:

Чтение из файла в массив на Си (начинающий)

Поможите пожалуйста!
Есть файл file с содержание типа 3 6 3 1.
Нужно прочитать файл и записать каждую цифру в массив. (число строк в файле известно заранее)
Пробовал так:
for (i = 0; i < n ; i++)
<
a[i] = getc(fp);
printf(«%d\n», a[i]);
>
или может пойти выспаться?

anonymous
30.11.03 03:32:23 MSK

Re: Чтение из файла в массив на Си (начинающий)

anonymous
( 30.11.03 11:21:27 MSK )
Ответ на: Re: Чтение из файла в массив на Си (начинающий) от anonymous 30.11.03 11:21:27 MSK

Re: Re: Чтение из файла в массив на Си (начинающий)

anonymous
( 30.11.03 14:40:47 MSK )
Ответ на: Re: Чтение из файла в массив на Си (начинающий) от anonymous 30.11.03 11:21:27 MSK

Re: Re: Чтение из файла в массив на Си (начинающий)

а разве он не начнет пробелы считыват %)

anonymous
( 30.11.03 16:58:12 MSK )
Ответ на: Re: Re: Чтение из файла в массив на Си (начинающий) от anonymous 30.11.03 16:58:12 MSK

Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Да, начал. Товарищ предыдущий anonymous, может быть подскажите что?

anonymous
( 30.11.03 18:14:48 MSK )
Ответ на: Re: Re: Re: Чтение из файла в массив на Си (начинающий) от anonymous 30.11.03 18:14:48 MSK

Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Посмотри man fscanf

OxiD ★★★★
( 01.12.03 11:12:06 MSK )

Re: Чтение из файла в массив на Си (начинающий)

DKorolkov ★
( 01.12.03 11:47:34 MSK )
Ответ на: Re: Чтение из файла в массив на Си (начинающий) от DKorolkov 01.12.03 11:47:34 MSK

Re: Re: Чтение из файла в массив на Си (начинающий)

Если на С++, то еще проще:

Flogger_d ★
( 01.12.03 12:10:30 MSK )
Ответ на: Re: Re: Чтение из файла в массив на Си (начинающий) от Flogger_d 01.12.03 12:10:30 MSK

Re: Re: Re: Чтение из файла в массив на Си (начинающий)

C++ не катит.
Вот что у меня получилось: правда работает бредово и не считает пробелы 🙁
— числа выводятся не в том формате. info printf ничем не помог.

int main(int argc, char* argv[])
<
char* path = argv[1];
int i;
unsigned char buffer[16];
size_t offset = 0;
size_t bytes_read;
int fd = open(path, O_RDONLY);
if (fd == -1)
<
perror («open»);
return 1;
>
do <
bytes_read = read(fd, buffer, sizeof (buffer));
>
while (bytes_read == sizeof (buffer));
for (i=0; i < bytes_read; i++)
printf(«%d», buffer[i]);
printf(«\n»);

anonymous
( 01.12.03 17:10:15 MSK )
Ответ на: Re: Re: Re: Чтение из файла в массив на Си (начинающий) от anonymous 01.12.03 17:10:15 MSK

Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Так тебе что — просто файл на экране распечатать — или массив с цифрами заполнить?
Если первое — то можно просто по символу читать поток и кидать сразу на вывод, не заморачиваясь с буфером — все равно оно буферизуется , если пользуешься f-функциями.
Если второе — то твоя программа все равно этого не делает и нужно использовать fscanf:

#define HOW_MANY 100
/* здесь — сколько цифр в файлике */

int main(int ac, char** av)<
char cyphers[HOW_MANY];
FILE* f;
int i;

Flogger_d ★
( 01.12.03 17:33:42 MSK )

Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

В fopen av — понятное дело — в нижнем регистре

Flogger_d ★
( 01.12.03 17:36:23 MSK )

Re: Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Да, и на счет массива я прогнал — он должен быть типа int а не char.

Flogger_d ★
( 01.12.03 17:38:00 MSK )

Re: Re: Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Да, мне нужно именно загнать в массив.
А вывожу я просто для проверки.

anonymous
( 01.12.03 18:20:16 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Так что — победил или нет?

Flogger_d ★
( 02.12.03 12:57:23 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

Частично, т.к. это было только начало.
надо чтобы заводился двуменрый массив из файла вида:
1 2 3 4
5 6 7 9
4 9 9 8

Буду пробовать на выходных.

anonymous
( 02.12.03 13:43:22 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

#include #include #define ROWS 10 #define COLS 15 // // Считать в массив матрицу из файла, размерность // матрицы считать ROWS строк и COLS столюцов // int main() < int ** array; int i; int j; // // распределить память! // array = (int**) malloc(sizeof(int*)*ROWS); for (i=0;ino-dashi ★★★★★
( 02.12.03 20:52:32 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Чтение из файла в массив на Си (начинающий)

а нафига собственно такую структуру городить в памяти? элементарно заводим сплошной кусок и индексируемся в нем типа m[i][j]==m[i*COLUMNS+j]

Считать числа из файла в массив

В файле записано неизвестное количество чисел. Нужно считать их в одномерный массив.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
#include #include int main(){ int k,i; FILE *ptrfile; k=0; int s; ptrfile=fopen("C:\\Users\\Самсунг\\Desktop\\mass.txt","r+"); while ((fscanf(ptrfile, "%d",&s)!=EOF)) { k+=1; printf ("k=%d ",k); printf ("s=%d\n",s); } int c[k]; for(i=0;ik;i++) { fscanf(ptrfile, "%d",&c[i]); printf("c[%d]=%d ",i,c[i]); } fclose(ptrfile); }

c[i] выводит неверные. Как правильно можно это осуществить?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Считать из файла числа в массив
здравствуйте. подскажите, как можно из подключенного текстового файла считать только числа (float).

Считать числа из файла в массив
Помогите мне сохранить числа, записанные в файле через пробел в 1 строку, в массив.(при том.

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

Считать числа с файла в массив int
В файле есть числа, допустим "12 15 0 3", их нужно поместить в массив int. Пробовал так: int.

Регистрация: 11.07.2012
Сообщений: 22

Размер массива должен иметь константное значение,поставь с[1000] и всё

Добавлено через 8 минут

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
#include int main(){ FILE *f; f=fopen("input.txt","r"); int k,i,l[100],x[100]; for(k=0;!feof(f);k++) fscanf(f,"%d",&l[k]); for(i=0;ik-1;i++) { x[i]=l[i]; printf("%d ",x[i]); } fclose(f); }

Заблокирован

Victor A, вы были почти у цели:

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
#include #include int main() { int k,i; FILE *ptrfile; k=0; int s; ptrfile=fopen("mass.txt","r+"); //так мне было короче ) while ((fscanf(ptrfile, "%d",&s)!=EOF)) { if(!ptrfile) break; //чтобы не делал лишнего k+=1; } int *c = (int*) malloc(k*sizeof(int)); //должен быть динамическим rewind(ptrfile); //перематываем файл для повторного чтения for(i=0;ik;i++) { fscanf(ptrfile, "%d",&c[i]); printf("c[%d]=%d ",i,c[i]); } fclose(ptrfile); free(c); //убираем мусор, когда уже не нужен (но не раньше =)) getchar(); //задержка консоли return 0; }

Как считать массив из файла?

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

#include "stdafx.h" #include #include "fstream" using namespace std; void main() < ifstream in("input.txt"); int array[5]; in >> array[5]; int min = array[0]; for (int i = 1; i < 5; i++) < if (array[i] < min) < min = array[i]; >> ofstream out("output.txt"); out

введите сюда описание изображения

Файл input.txt

Отслеживать

задан 15 окт 2017 в 6:58

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

Читать надо поэлементно в цикле, и разделители по умолчанию — символы пробельной группы (запятая в них не входит). Ну, и еще в коде выход за пределы массива. Индексы начинаются с 0, т.е. элемента array[5] не существует.

15 окт 2017 в 7:48

@alexolut , я, вроде как, array[5] и не использую, тк в цикле i строго меньше 5

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

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

  • Вопрос задан более года назад
  • 723 просмотра

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

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

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

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

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