Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
1

чтение

02.03.2013, 22:51. Просмотров 522. Ответов 19
Метки нет (Все метки)

почему выкидывает
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);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2013, 22:51
Ответы с готовыми решениями:

Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление)
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на...

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен...

Чтение из файла. Повторное чтение файла
Добрый день. Необходимо реализовать в программе функцию повторного чтения...

Чтение из БД
Помогите, пожалуйста! Как прочесть ID последней записи в таблице БД?

Чтение
Всем привет! Я только-только начал учить С++, и поэтому в нём полный ноль....

19
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.03.2013, 22:59 2
Что пишет?
0
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:12  [ТС] 3
вылетает
сразу выскакивает окно на закрытие программы
0
Silvestr1994
27 / 27 / 11
Регистрация: 26.10.2012
Сообщений: 101
02.03.2013, 23:14 4
а ти файл создал на компе ???
0
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:15  [ТС] 5
да , все норм. перезапустил вижуал все норм, но теперь не читает тупо.....массив не заполняет
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
02.03.2013, 23:17 6
Если да, то что там. Должны быть int в бинарном виде записаны.
0
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:18  [ТС] 7
а подробнее?
0
Kuzia domovenok
2330 / 2075 / 484
Регистрация: 25.03.2012
Сообщений: 7,419
Записей в блоге: 1
02.03.2013, 23:19 8
это ты нам поподробнее. Что в файле? Файл целиком. И программу целиком.
0
Silvestr1994
27 / 27 / 11
Регистрация: 26.10.2012
Сообщений: 101
02.03.2013, 23:21 9
попробуй поставить rb
0
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");
}
0
Kuzia domovenok
2330 / 2075 / 484
Регистрация: 25.03.2012
Сообщений: 7,419
Записей в блоге: 1
02.03.2013, 23:30 11
Цитата Сообщение от 13oops13 Посмотреть сообщение
в файле цифры
Может числа?
Файл не должен быть текстовым, если ты эти "цифры" хочешь прочитать в массив таким образом.
0
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
02.03.2013, 23:45  [ТС] 12
rb не помогла

Добавлено через 31 секунду
ой сори ))) числа))
0
Silvestr1994
27 / 27 / 11
Регистрация: 26.10.2012
Сообщений: 101
02.03.2013, 23:46 13
попробуй забрать амперсант
1
alsav22
5442 / 4837 / 831
Регистрация: 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);
}
0
Kuzia domovenok
2330 / 2075 / 484
Регистрация: 25.03.2012
Сообщений: 7,419
Записей в блоге: 1
03.03.2013, 00:24 15
Цитата Сообщение от 13oops13 Посмотреть сообщение
rb не помогла
ещё раз. НЕЛЬЗЯ так читать текстовый файл. Ты его читаешь как бинарный. А создавал наверняка в блокноте как текстовый.
0
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");
}
0
Kuzia domovenok
2330 / 2075 / 484
Регистрация: 25.03.2012
Сообщений: 7,419
Записей в блоге: 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;
}
Но он у тебя НЕ двоичный. Ты просто врал всё это время.
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");
}
0
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.03.2013, 01:14 19
Цитата Сообщение от 13oops13 Посмотреть сообщение
не читает
Откуда видно? Что loading() делает?

Добавлено через 6 минут
Как mas создаётся?
0
13oops13
1 / 1 / 0
Регистрация: 24.02.2013
Сообщений: 47
03.03.2013, 12:55  [ТС] 20
все уже все норм......ошибка оказалась очень глупая)) я почему то ввел локальную переменную с таким же именем как в классе и данные в неё записывал а переменная класса оставалась равная 0 поэтому массив и не выводился
0
03.03.2013, 12:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2013, 12:55

Чтение в структуру
Подскажите пожалуйста. Считываю строку из файла через fgets(string, 39, file)...

Чтение из файла
Есть текстовый файл, с n строк. Нужно записать содержимое каждой строки в...

Чтение из файла
Привет, народ, объясните, пожалуйста, в чем дело: #include &lt;iostream&gt;...


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

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

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