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

чтение - C++

Восстановить пароль Регистрация
 
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 22:51     чтение #1
почему выкидывает
C++
1
2
3
4
5
6
7
8
cout<<"Starting read date\n\n";
    file=fopen("date.txt", "r");
    for(int i=0;i<num;i++)
    {
        fread(&el,sizeof(int),1,file);
        mas[i]=el;
    }
    fclose(file);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2013, 22:51     чтение
Посмотрите здесь:

C++ Чтение
Чтение из БД C++
C++ чтение из файла
Чтение из файла C++
Чтение из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.03.2013, 22:59     чтение #2
Что пишет?
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:12  [ТС]     чтение #3
вылетает
сразу выскакивает окно на закрытие программы
Silvestr1994
 Аватар для Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
02.03.2013, 23:14     чтение #4
а ти файл создал на компе ???
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:15  [ТС]     чтение #5
да , все норм. перезапустил вижуал все норм, но теперь не читает тупо.....массив не заполняет
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.03.2013, 23:17     чтение #6
Если да, то что там. Должны быть int в бинарном виде записаны.
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:18  [ТС]     чтение #7
а подробнее?
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.03.2013, 23:19     чтение #8
это ты нам поподробнее. Что в файле? Файл целиком. И программу целиком.
Silvestr1994
 Аватар для Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
02.03.2013, 23:21     чтение #9
попробуй поставить rb
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:22  [ТС]     чтение #10
в файле цифры
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
void steck::input_file()
{
    FILE *file;
    int el,i=0,num;
    file=fopen("date.txt", "w");
    cout<<"Recoding date -"<<endl;
    cout << "Enter num of elements-> ";
    cin >> num;
    for (i=1; i<=num; i++)
    { 
        cout << "Enter value of element-> ";
        cin>>el;
        fprintf(file,"%d",el);
    }
    fclose(file);
    cout<<"\nRecoding is complete\n";
    loading();
    system("cls");
    cout<<"Starting read date\n\n";
    file=fopen("date.txt", "r");
    for(int i=0;i<num;i++)
    {
        fread(&el,sizeof(int),1,file);
        mas[i]=el;
    }
    fclose(file);
    cout<<endl<<"\n\nReading is complete\n\n"<<endl;
    loading();
    loading();
    system("cls");
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
02.03.2013, 23:30     чтение #11
Цитата Сообщение от 13oops13 Посмотреть сообщение
в файле цифры
Может числа?
Файл не должен быть текстовым, если ты эти "цифры" хочешь прочитать в массив таким образом.
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:45  [ТС]     чтение #12
rb не помогла

Добавлено через 31 секунду
ой сори ))) числа))
Silvestr1994
 Аватар для Silvestr1994
27 / 27 / 1
Регистрация: 26.10.2012
Сообщений: 101
02.03.2013, 23:46     чтение #13
попробуй забрать амперсант
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
02.03.2013, 23:59     чтение #14
Попробуйте так записывать числа в файл:
C++
1
2
3
4
5
6
for (i = 0; i < num; i++)
{ 
      cout << "Enter value of element-> ";
      cin >> el;
      fwrite((const char*)&el, sizeof(int), 1, file);
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.03.2013, 00:24     чтение #15
Цитата Сообщение от 13oops13 Посмотреть сообщение
rb не помогла
ещё раз. НЕЛЬЗЯ так читать текстовый файл. Ты его читаешь как бинарный. А создавал наверняка в блокноте как текстовый.
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
03.03.2013, 00:30  [ТС]     чтение #16
без & ругается

Добавлено через 2 минуты
Цитата Сообщение от alsav22 Посмотреть сообщение
Попробуйте так записывать числа в файл:
C++
1
2
3
4
5
6
for (i = 0; i < num; i++)
{ 
      cout << "Enter value of element-> ";
      cin >> el;
      fwrite((const char*)&el, sizeof(int), 1, file);
}
нифига

Добавлено через 1 минуту
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
ещё раз. НЕЛЬЗЯ так читать текстовый файл. Ты его читаешь как бинарный. А создавал наверняка в блокноте как текстовый.
вот функция
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
void steck::input_file()
{
    FILE *file;
    int el,i=0,num;
    file=fopen("date.txt", "wb");
    cout<<"Recoding date -"<<endl;
    cout << "Enter num of elements-> ";
    cin >> num;
    for (i=1; i<=num; i++)
    { 
        cout << "Enter value of element-> ";
        cin>>el;
        fprintf(file,"%d",el);
    }
    fclose(file);
    cout<<"\nRecoding is complete\n";
    loading();
    system("cls");
    cout<<"Starting read date\n\n";
    file=fopen("date.txt", "rb");
    for(int i=0;i<num;i++)
    {
        fread(&el,sizeof(int),1,file);
        mas[i]=el;
    }
    fclose(file);
    cout<<endl<<"\n\nReading is complete\n\n"<<endl;
    loading();
    loading();
    system("cls");
}
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
03.03.2013, 00:36     чтение #17
Цитата Сообщение от 13oops13 Посмотреть сообщение
fprintf(file,"%d",el);
а что тогда fscanf использовать религия не позволяет??? Зачем было врать, что файл бинарный? - у тебя он текстовый. Было бы это известно сразу - обсуждение не ушло б дальше первой страницы.
Если бы файл был бинарный, то И писать в него И читать из него надо было вот так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <cstdio>
 
int main ()
{
 //запись
  FILE * wFile;
  int numbers[] = { 30 , 40 , 50 };
  wFile = fopen ( "myfile.bin" , "wb" );
  fwrite (numbers , sizeof(int) , 3 , wFile );
  fclose (wFile);
 
//чтение
  FILE * rFile;
  int results[4];
  rFile = fopen ( "myfile.bin" , "rb" );
  fread (results , sizeof(int) , 3 , rFile );
  fclose (rFile);
//проверка
  printf("%d %d %d", results[0], results[1], results[2]);
  getchar();
  return 0;
}
Но он у тебя НЕ двоичный. Ты просто врал всё это время.
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
03.03.2013, 00:41  [ТС]     чтение #18
я переписал, результат прежний , не читает
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
void steck::input_file()
{
    FILE *file;
    int el,i=0,num;
    file=fopen("date.bin", "wb");
    cout<<"Recoding date -"<<endl;
    cout << "Enter num of elements-> ";
    cin >> num;
    for (i=1; i<=num; i++)
    { 
        cout << "Enter value of element-> ";
        cin>>el;
        //fprintf(file,"%d",el);
        fwrite (&el , sizeof(int) , 1 , file );
    }
    fclose(file);
    cout<<"\nRecoding is complete\n";
    loading();
    system("cls");
    cout<<"Starting read date\n\n";
    file=fopen("date.bin", "rb");
    for(int i=0;i<num;i++)
    {
        //fread(&el,sizeof(int),1,file);
        fread (&el , sizeof(int) , 1 , file );
        mas[i]=el;
    }
    fclose(file);
    cout<<endl<<"\n\nReading is complete\n\n"<<endl;
    loading();
    loading();
    system("cls");
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.03.2013, 01:14     чтение #19
Цитата Сообщение от 13oops13 Посмотреть сообщение
не читает
Откуда видно? Что loading() делает?

Добавлено через 6 минут
Как mas создаётся?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2013, 12:55     чтение
Еще ссылки по теме:

C++ Чтение из файла
C++ Чтение RGBQUAD
Чтение из файла C++

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

Или воспользуйтесь поиском по форуму:
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
03.03.2013, 12:55  [ТС]     чтение #20
все уже все норм......ошибка оказалась очень глупая)) я почему то ввел локальную переменную с таким же именем как в классе и данные в неё записывал а переменная класса оставалась равная 0 поэтому массив и не выводился
Yandex
Объявления
03.03.2013, 12:55     чтение
Ответ Создать тему
Опции темы

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